Hej!
Jag läser AI för naturligt språk. Alla kan komma åt den kursen här: https://ai-for-naturligt-sprak.ida.liu.se/
Jag har kört fast på kapitel 3, 10 slutuppgift.
Där det är Logistik regression:
Naive Bayes är en av de simplare modellerna att implementera, och den grundar sig i en förenklad bild av hur text och en klass hänger samman. Det finns många fler modeller som vi kan träna, och en av dem är logistisk regression.
I följande kodcell ska vi använda oss av modellen LogisticRegression för klassificering av flera klasser. Sätt modellens parametrar så att följande stämmer:
• random\_state har ett bestämt värde så att modellens resultat är reproducerbara.
• Modellen ska tränas under som mest 500 iterationer, så att modellen har tid att närma sig en bra lösning (även om den behöver fler steg för att konvergera).
• Modellen ska använda sig av saga för optimering.
• Valfritt: sätt verbose=True för att få utskrifter om vilken iteration modellen är på.
För att genomföra detta behöver du troligtvis läsa om modellens paramterar i Scikit-learns dokumentation.
Data vektoriseras med CountVectorizer så att resultat går att jämföra med Naive Bayes-modellen. Det finns dock andra vektoriserare, exempelvis en som transformerar till tf-idf, TfidfVectorizer.
Utför träningen på ej balanserad träningsdata. Träning på balanserad data sker i en efterföljande kodcell.
OBS: Det kan ta några minuter för modellen att slutföra sin träning.
Har koden:
Har sedan tidigare följande filer att jobba med som står längst upp på sidan:
Följande filer används i uppgiften:
• speeches-201718.json.bz2 - Tal i Svenska riksdagen, 2017/2018.
• speeches-201819.json.bz2 - Tal i Svenska riksdagen, 2018/2019.
För att spara filerna, högerklicka på länken och välj att spara filen. Du behöver inte ladda ned några filer för att genomföra uppgiften, utan de är per automatik tillgängliga för användning i kodcellerna nedan.
Den sentimentanalys som vi gjorde på recensioner av appar hade två möjliga klasser, pos och neg. Nu ska vi utföra klassificering på data där det finns flera klasser. Det finns ett stort överlapp med hur de tidigare uppgifterna utfördes, men du kommer nu arbeta mer självständigt och få mindre ledning om vad som ska utföras. I slutändan ska du också gå utanför det vi gjort hittills och använda dig av logistisk regression som ett alternativ till Naive Bayes.
Vår data består av alla tal i Svenska riksdagen under sessioner från åren 2017/2018 och 2018/2019. Rådatan är tagen från Riksdagens öppna data och talen är indelade i två filer:
• speeches-201718.txt med 12,343 tal
• speeches-201819.txt med 9,288 tal
Kan någon hjälpa mig med den här koden? Jag får verkligen inte till det. Lärarna på kursen har semester och hänvisar till Google/Youtube vilket inte hjälpt.
Jag läser AI för naturligt språk. Alla kan komma åt den kursen här: https://ai-for-naturligt-sprak.ida.liu.se/
Jag har kört fast på kapitel 3, 10 slutuppgift.
Där det är Logistik regression:
Naive Bayes är en av de simplare modellerna att implementera, och den grundar sig i en förenklad bild av hur text och en klass hänger samman. Det finns många fler modeller som vi kan träna, och en av dem är logistisk regression.
I följande kodcell ska vi använda oss av modellen LogisticRegression för klassificering av flera klasser. Sätt modellens parametrar så att följande stämmer:
• random\_state har ett bestämt värde så att modellens resultat är reproducerbara.
• Modellen ska tränas under som mest 500 iterationer, så att modellen har tid att närma sig en bra lösning (även om den behöver fler steg för att konvergera).
• Modellen ska använda sig av saga för optimering.
• Valfritt: sätt verbose=True för att få utskrifter om vilken iteration modellen är på.
För att genomföra detta behöver du troligtvis läsa om modellens paramterar i Scikit-learns dokumentation.
Data vektoriseras med CountVectorizer så att resultat går att jämföra med Naive Bayes-modellen. Det finns dock andra vektoriserare, exempelvis en som transformerar till tf-idf, TfidfVectorizer.
Utför träningen på ej balanserad träningsdata. Träning på balanserad data sker i en efterföljande kodcell.
OBS: Det kan ta några minuter för modellen att slutföra sin träning.
Har koden:
Kod:
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import Pipeline
# Läs in träningsdata och testdata
train_data = pd.read_csv('speeches-201718.txt', delimiter='\t', header=None, names=['text'])
test_data = pd.read_csv('speeches-201819.txt', delimiter='\t', header=None, names=['text'])
# Skapa vektorisering och logistisk regression pipeline
vectorizer = CountVectorizer()
clf = LogisticRegression(random_state=42, max_iter=500, solver='saga', verbose=True)
log_regr = Pipeline([('count_vect', vectorizer), ('log_regr', clf)])
# Träna modellen
X_train = train_data['text']
y_train = train_data['party']
log_regr.fit(X_train, y_train)
# Testa modellen
X_test = test_data['text']
pred_lr = log_regr.predict(X_test)
print("Urval av prediktioner [0-4]:", pred_lr[:5])
Har sedan tidigare följande filer att jobba med som står längst upp på sidan:
Följande filer används i uppgiften:
• speeches-201718.json.bz2 - Tal i Svenska riksdagen, 2017/2018.
• speeches-201819.json.bz2 - Tal i Svenska riksdagen, 2018/2019.
För att spara filerna, högerklicka på länken och välj att spara filen. Du behöver inte ladda ned några filer för att genomföra uppgiften, utan de är per automatik tillgängliga för användning i kodcellerna nedan.
Den sentimentanalys som vi gjorde på recensioner av appar hade två möjliga klasser, pos och neg. Nu ska vi utföra klassificering på data där det finns flera klasser. Det finns ett stort överlapp med hur de tidigare uppgifterna utfördes, men du kommer nu arbeta mer självständigt och få mindre ledning om vad som ska utföras. I slutändan ska du också gå utanför det vi gjort hittills och använda dig av logistisk regression som ett alternativ till Naive Bayes.
Vår data består av alla tal i Svenska riksdagen under sessioner från åren 2017/2018 och 2018/2019. Rådatan är tagen från Riksdagens öppna data och talen är indelade i två filer:
• speeches-201718.txt med 12,343 tal
• speeches-201819.txt med 9,288 tal
Kan någon hjälpa mig med den här koden? Jag får verkligen inte till det. Lärarna på kursen har semester och hänvisar till Google/Youtube vilket inte hjälpt.
__________________
Senast redigerad av Proton 2023-07-14 kl. 17:40.
Senast redigerad av Proton 2023-07-14 kl. 17:40.