Lui*_*uez 5 python nlp fasttext
我对将tf-idf与FastText库一起使用很感兴趣,但是找到了一种处理ngram的逻辑方法。我已经将tf-idf与SpaCy向量一起使用了,以发现以下示例:
但是对于FastText库,我不太清楚,因为它的粒度不太直观,例如EG
对于一般的word2vec方法,我每个单词都有一个矢量,我可以计算该矢量的词频,并相应地除以其值。
但是对于fastText,同一个单词会有几个n-gram
“听最新新闻摘要”将具有由滑动窗口生成的n-gram,例如:
十个孩子...
这些n-gram由模型内部处理,因此当我尝试时:
model["Listen to the latest news summary"]
Run Code Online (Sandbox Code Playgroud)
我直接得到最终的向量,因此我所需要的是在输入模型之前将文本拆分为n元语法:
model['lis']
model['ist']
model['ten']
Run Code Online (Sandbox Code Playgroud)
然后从那里制作tf-idf,但这似乎都是一种低效的方法,是否存在将tf-idf应用于此类矢量n-gram的标准方法。
我会让 FastText 处理三元组,但继续tfidf
在单词级别构建 加权嵌入。
也就是说,你发送
model["Listen"]
model["to"]
model["the"]
...
Run Code Online (Sandbox Code Playgroud)
到 FastText,然后使用旧代码获取 tf-idf 权重。
无论如何,最好知道 FastText 本身在处理句子时是否考虑单词结构,或者它实际上仅将其作为三元组序列(混合连续单词)。如果后者为真,那么对于 FastText,您将通过将句子分成单独的单词来丢失信息。