达观杯文本智能处理挑战赛
笔者尝试了一下达观杯的比赛,代码如下图所示:
import pandas as pd
import imp
from sklearn.linear_model import LogisticRegression
from sklearn.feature_extraction.text import CountVectorizer
df_test = pd.read_csv(r"testset.csv")
df_train = pd.read_csv(r"trainset.csv")
df_train.drop(columns=["article","id"],inplace=True)
df_test.drop(columns=["article"],inplace=True)
vectorizer = CountVectorizer(ngram_range=(1, 2),min_df=3,max_df=0.9,max_features=10000)
vectorizer.fit(df_train["word_seg"])
x_train =vectorizer.transform(df_train["word_seg"])
x_test =vectorizer.transform(df_test["word_seg"])
y_train =df_train["class"]-1
lg = LogisticRegression(C=4,dual=True)
lg.fit(x_train,y_train)
y_test = lg.predict(x_test)
df_test["class"] = y_test.tolist()
df_test["class"] = df_test["class"] + 1
df_result =df_test.loc[:,["id","class"]]
df_result.to_csv("./result.csv",index=False)
print("完成")
运行结果是:
pandas.errors.ParserError: Error tokenizing data. C error: out of memory
这是因为我的电脑内存太小,导致了内存溢出,因此换一台电脑就可以得到最终得分为72分的答案了。笔者最终排名位于全国前300名,算是一个个人感觉还不错的成绩了。
---------------------