Duo*_*hia 6 python similarity nltk
一种特殊的自然语言实践是使用WordNet计算两个单词之间的相似性.我用以下python代码开始我的问题:
from nltk.corpus import wordnet
sport = wordnet.synsets("sport")[0]
badminton = wordnet.synsets("badminton")[0]
print(sport.wup_similarity(badminton))
Run Code Online (Sandbox Code Playgroud)
我们将得到0.8421
现在如果我寻找"haha"和"lol"如下:
haha = wordnet.synsets("haha")
lol = wordnet.synsets("lol")
print(haha)
print(lol)
Run Code Online (Sandbox Code Playgroud)
我们将得到
[]
[]
Run Code Online (Sandbox Code Playgroud)
然后我们不能考虑它们之间的相似性.在这种情况下我们能做些什么?
您可以使用像Dissect (Distributional SEmantics Composition Toolkit)这样的工具从共生矩阵创建语义空间 ,然后设置为测量单词或短语之间的语义相似性(如果您组成单词).
在你的ha和lol的情况下,你需要收集这些同谋.
另一件要尝试的是word2vec.
小智 5
有两种可能的其他方式:
CBOW:连续的一句话
跳过克模型:这个模型与CBOW模型相反
看看这个:https://www.quora.com/What-are-the-continuous-bag-of-words-and-skip-gram-architectures-in-laymans-terms
这些模型以及这里represted:https://www.tensorflow.org/tutorials/word2vec,也GENSIM是这样做的这些东西一个良好的Python库
尝试寻找Tensorflow解决方案,例如:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/word2vec/word2vec_basic.py
或者尝试寻找word2vec:https://en.wikipedia.org/wiki/Word2vec
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |