我正在尝试开发一个web应用程序,它可以分析单个单词,它的同义词恰好显示在一堆段落中。累积单词及其同义词在段落中出现的次数。
目前我发现一些像twinword.com这样的应用程序接口,它们只在两个句子中做相似之处。有没有可以完成任务的API或工具服务?
非常感谢。
发布于 2018-03-20 10:28:56
您可以尝试使用另外两个Twinword来获得您想要的内容。
步骤1:获取相关单词
使用,您可以获得同义词和相关单词。
例如,使用演示,单词"best“将返回以下关联及其相关性得分为"best":
{
"unmatched": 2.5006557,
"unparalleled": 1.8664826,
"incomparable": 1.6736358,
"unsurpassed": 1.6117903,
"optimal": 1.576423,
"supreme": 1.5223511,
"superbly": 1.4789101,
"superior": 1.3964652,
"superiority": 1.3161669,
"superlative": 1.3032479,
"matchless": 1.3011634,
"better": 1.2848812,
"unrivaled": 1.2450347,
"foremost": 1.2047551,
"maximum": 1.1856474,
"excellent": 1.1767814,
"heyday": 1.0933546,
"unpaired": 1.0249922,
"optimum": 0.9539663,
"superb": 0.9439568,
"peerless": 0.92408043,
"premier": 0.91121525,
"ideal": 0.85982496,
"splendid": 0.8591815,
"nonpareil": 0.85686266,
"well": 0.85620004,
"apotheosis": 0.85186666,
"unequaled": 0.82653475,
"peak": 0.73392785,
"main": 0.6999291
}第2步:将段落减少为关键字计数
在此之后,您可以使用将段落解析为一个“词元”或“词根单词”数组。
The frogs hopped from rock to rock.返回:
"lemma": {
"rock": 2,
"hop": 1,
"frog": 1
}第三步:在你的程序中进行搜索和统计
然后,这只是一个简单的匹配。
仅供参考:我在Twinword工作。
发布于 2018-03-03 16:31:54
Word2Vec就是这样一种技术。将单词转换为向量的神经网络,训练神经网络根据上下文将单词分组在一起。
其想法是,具有相似语义属性的单词在大量文本中共享可比较的上下文。您可以使用这样的模型来检索相似的单词。
这是一个使用预训练模型(source)的简单示例。请注意,该模型是为荷兰人训练的,恰好放在我的pc上(这些模型可以相当大)。
>>> from gensim.models import KeyedVectors
>>> word_vectors = KeyedVectors.load_word2vec_format("320/wikipedia-320.txt", binary=False)
>>> print(word_vectors.similarity("auto", "auto")) #identity
>>> print(word_vectors.similarity("auto", "wagen")) #synonym
>>> print(word_vectors.similarity("dier", "hond")) #hyponym
>>> print(word_vectors.similarity("kaas", "schrijven")) #unrelated
1.0
0.78154475055
0.26128426093
0.0455340792091 正如你所看到的,关系越强,得分越高
有关更多文档,请查看:https://radimrehurek.com/gensim/models/word2vec.html
https://stackoverflow.com/questions/49082172
复制相似问题