常用的抽取文本特征有:
- TFIDF/LDA/LSI
- gensim
- glove
- fasttext
- ELMO
- Bert
word2vec的训练与简易使用
glove的训练与简易使用
简易版的glove安装使用比较方便
pip install glove-python
word_list = []
with codecs.open(path,'r','utf-8') as f:
lines = f.readlines()
for line in lines:
tmp = line.split(' ')
print(tmp)
word_list.append(tmp)
corpus_model_word = Corpus()
#fit时必须格式为[[],[]]
corpus_model_word.fit(word_list, window=10)
glove = Glove(no_components=100, learning_rate=0.05)
glove.fit(corpus_model_word.matrix, epochs=10,no_threads=1, verbose=True)
glove.add_dictionary(corpus_model_word.dictionary)
glove.save('../data/model/article/glove.bin')
其中corpus_model.fit(corpus, window=10, ignore_missing=False)
ignore_missing代表如果出现OOV的词,该如何处理。
OOV未登录词向量问题
未登录词指现有词表中没有收录的词或者已有的训练语料中未曾出现过的词,通常有如下几种情况:
- 新出现的普通词汇:网络词汇等
- 专有名词:人名、地名、时间、数字表达
- 专业名词和研究领域词汇:特定和新兴的研究领域
- 其他专业名词:新产品或电影名称等
OOV问题的解决方法:两个词向量空间对齐