語言模型之英文資料預處理

2021-08-10 20:32:25 字數 983 閱讀 1424

在做語言模型的時候需要對文字做一些預處理,將文字分成一行一句的形式,並標上開始符和結束符。

1.句子切分

可以按照句號,問號,感嘆號,進行切分。

然後從未到頭掃瞄一遍,將不是以大寫字母開頭的拼接到上一句上(對於類似於s. r這類的人名無法處理)

text=re.sub('\. ',' sss ',text)

text=re.sub('! ',' sss ',text)

text=re.sub('\? ',' sss ',text)

sentencelist=text.split('sss')

sentencelist=[sentence.strip() for sentence in sentencelist]

numofsentence=len(sentencelist)

fornumin range(1,numofsentence-1):

if (sentencelist[-num]!=''

and sentencelist[-num][0]>='a'

and sentencelist[-num][0]<='z'):

continue

else:

sentencelist[-num-1]= sentencelist[-num-1]+sentencelist[-num]

sentencelist[-num]=''

2.把所有的數字替換成乙個特殊的字元,例如 n 。

1中有乙個問題,就是會把引號裡面的文字句子給切分。

可以在進行第一步之前,先把引號中的內容替換掉,切分完之後再替換回來。這個就有點麻煩,因為還可能出現引號套引號的狀況。

標點去不去掉對語言模型有什麼影響呢?不清楚,可以試一下。我做的拼寫糾錯的任務裡面,標點不去,效果會好些。

原來nltk已經實現了分句,分詞,參見

nltk 也沒有解決 引號 之內的句號如何處理的問題。

是否並不重要?

NLP 英文資料預處理

目錄 理論 文字特徵提取 詞袋模型 tf idf模型 高階詞向量模型 部分 gensim doc2bow lda gensim tfidf lda 結果對比 主流 谷歌的word2vec演算法,它是乙個基於神經網路的實現,使用cbow continuous bags of words 和skip g...

英文自然語言預處理

目錄 1 資料集準備 2 資料集處理 1 簡單分詞 詞性還原 停用詞過濾 2 特徵提取 tt idf 資訊增益 卡方檢驗 互資訊 n gram等 3 文字標籤向量化 4 選擇合適的演算法模型進行訓練 函式說明 簡單分詞 parameters filename 資料檔案 returns list wo...

sklearn之模型預處理

1 獲取樣本資料 from sklearn import datasets boston datasets.load boston bunch部含有多個屬性 boston.data,boston.target 2 建立樣本資料 from sklean import datasets datasets...