對於英文,其詞法結構決定了其天生就是已經分詞了的,通過空格分詞即可
print('I love you'.split(' ')) # 用空格切分長字符串
# ['I', 'love', 'you']
對於中文,就需要通過另外的手段進行分詞了
jieba
這樣一個功能包是中文文本分詞的常用手段之一
隨便做了如下這樣一個測試文件,內容是gensim下的詞向量生成模型word2vec的屬性說明
import jieba
with open('data.txt', encoding='utf8') as f:
sentenceslist = f.read().splitlines() # 讀取文檔按行生成列表
# ['1.sentences:可以是一個List,對於大語料集,建議',
# '2.sg: 用於設置訓練算法,默認爲0,對應CBOW算法',
# '3.size:是指輸出的詞的向量維數,默認爲100。',
# ...]
# 只需要調用jieba.cut(str)就可以將str進行分詞,返回在一個列表中
res = [list(jieba.cut(sent)) for sent in sentenceslist]
# [['1', '.', 'sentences', ':', '可以', '是', '一個', 'List', ',', '對於', '大', '語料', '集', ',', '建議'],
# ['2', '.', 'sg', ':', ' ', '用於', '設置', '訓練', '算法', ',', '默認', '爲', '0', ',', '對應', 'CBOW', '算法'],
# ['3', '.', 'size', ':', '是', '指', '輸出', '的', '詞', '的', '向量', '維數', ',', '默認', '爲', '100', '。'],
# ...]]
可以看到句子已經被被分割成詞的列表,看到其中還有標點符號,當然這些是需要取到了,可以通過過正則表達式去標點;在文本處理還有一種去停用詞的操作,就是去掉對目標(比如情感識別)無用的詞彙,諸如像‘的’、‘了’或者標點符號之類的,可以去網上搜一份停用詞列表,通過匹配該列表過濾一遍詞列表。