#載入停用詞,txt內容可以隨專案進行改變
stopwords = pd.read_csv(
'stopword.txt'
,index_col=
false
,quoting=
3,sep=
'\t'
,names=
['stopwords'
],encoding=
'utf-8'
)stopwords = stopwords[
'stopwords'
].values
#載入語料庫
data = pd.read_csv(
'data.csv'
,encoding=
'utf-8'
,seq=
',')
data.dropna(inplace=
true
)data = data.segment.values.tolist(
)#dataframe轉為list
#分詞、去停用詞
defpreprocess
(data)
:for line in data:
try:
segs = jieba.lcut(line)
#分詞 segs =
[v for v in segs if
notstr
(v).isdigit()]
#取數字
segs =
list
(filter
(lambda x:x.strip(
),segs)
)#去左右空格
segs =
list
(filter
(lambda x:
len(x)
>
1,segs)
)#去掉長度為1的字元
segs =
list
(filter
(lambda x:x not
in stopwords,segs)
)#去掉停用詞
"".join(segs)
)except exception:
(line)
continue
return sentences
segs = preprocess(data)
#抽取詞向量特徵
#抽取特徵,定義詞袋模型,可以換成word2vec模型
from sklearn.feature_extraction.text import countvectorizer
vec = countvectorizer(analyzer=
'word'
,max_features=
4000
)#語料資料切分成訓練集和測試集
for sklearn.model_selection import train_test_split
x_train, x_test = train_test_split(data,random_state=42)
#訓練資料轉為詞袋模型
vec.fit(x_train)
#建立模型,可以換多種訓練模型
from sklearn.*****_bayes import multinomialnb
classifier = multinomialnb(
)classifier.fit(vec.transform(x_train)
, y_train)
#計算auc
(classifier.score(vec.transform(x_test)
, y_test)
)#**
pre = classifier.predict(vec.transform(x_test)
)
R語言做文字挖掘 Part4文字分類
part4文字分類 part3文字聚類裡講到過,分類跟聚類的簡單差異。所以要做分類我們需要先整理出乙個訓練集,也就是已經有明確分類的文字 測試集,可以就用訓練集來替代 集,就是未分類的文字,是分類方法最後的應用實現。1.資料準備 訓練集準備是乙個很繁瑣的功能,暫時沒發現什麼省力的辦法,根據文字內容去...
2 2 文字分類專案
中文語言的文字分類技術和流程 文字預處理 1.選擇處理的文字的範圍 對於分類或聚類任務,往往將整個文件作為處理單位 對於情感分析 文件自動文摘或資訊檢索,段落或章節可能更合適 2.建立分類文字語料庫 目前比較好的中文分類語料庫有復旦大學譚松波中文文字分類語料庫和搜狗新聞分類語料庫 訓練集語料 分好類...
NLP(五)文字分類
1 svm 2 樸素貝葉斯 3 lda 本文給出 和使用中的效果 1 svm svm做文字分類準確率並不高,而且耗時,訓練集少時推薦邏輯回歸 from sklearn.feature extraction.text import tfidfvectorizer from sklearn.svm im...