0.文本处理整体概况
step1:对原始数据进行分词
step2:对分词后的数据进行去重编号,得到[词语to序号]的列表,和[序号to词语]的字典。将这两部分用作后续训练循环神经网络的数据集。
step3:通过一些采样方法对构建的数据集进行采样,得到训练的批次。常见的采样方法有随机采样和相邻采样。
step4:利用语言模型对上述的数据集进行训练,得到一个nlp模型。语言模型有n元语法模型,RNN模型,LSTM模型等。
1.使用spacy可以进行语言分词
达到很好的直观效果,相较于自己构建的逻辑,更加符合语言本身词意的分词操作,且可以将分词对应的idx对应输出。
import spacy
text = "Mr. Chen doesn't agree with my suggestion."
nlp = spacy.load('en_core_web_sm')
doc = nlp(text)
print([token.text for token in doc])
print([token.idx for token in doc])
#------------------
['Mr.', 'Chen', 'does', "n't", 'agree', 'with', 'my', 'suggestion', '.']
[0, 4, 9, 13, 17, 23, 28, 31, 41]