有没有方法可以测量查询(句子)和文档(一组句子)之间的句法相似度?如何测量查询和文档之间的句法相似度?
0
A
回答
1
你在寻找类似于Apache Lucene的产品吗?
3
您是否考虑过使用deep linguistic processing工具,其中包含深度文法,如HPSG和LFG?如果你正在寻找基于特征的语法相似性,你可以看看Kenji Sagae and Andrew S. Gordon在使用PropBank计算动词的句法相似性方面的工作,然后聚类相似的动词以改进HPSG语法。
为了有一个更简单的方法,我建议查看依赖关系解析和组合句子与相同的解析节点。或者只是POS标签句子和比较句子与相同的POS标签。
为了一个简单的例子,首先下载并安装NLTK(http://nltk.org/)和hunpos标记器(http://code.google.com/p/hunpos/)。解压缩en_wsj.model.gz并将其保存在python脚本的位置。
import nltk
from nltk.tag.hunpos import HunposTagger
from nltk.tokenize import word_tokenize
s1 = "This is a short sentence"
s2 = "That is the same sentence"
ht = HunposTagger('en_wsj.model')
print ht.tag(word_tokenize(corpus))http://nltk.org/
# Tag the sentences with HunPos
t1 = ht.tag(word_tokenize(s1))
t2 = ht.tag(word_tokenize(s2))
#Extract only the POS tags
pos1 = [i[1] for i in t1]
pos2 = [j[1] for j in t2]
if pos1 == pos2:
print "same sentence according to POS tags"
else:
print "diff sentences according to POS tags"
这上面的脚本输出:
>>> print pos1
['DT', 'VBZ', 'DT', 'JJ', 'NN']
>>> print pos2
['DT', 'VBZ', 'DT', 'JJ', 'NN']
>>> if pos1 == pos2:
... print "same sentence according to POS tags"
... else:
... print "diff sentences according to POS tags"
...
same sentence according to POS tags
要修改上面的代码,请尝试:
- ,而不是比较POS使用依赖解析,而不是一个严格的名单
- 比较,拿出一些统计方法来衡量差异水平
相关问题
- 1. 如何计算查询和文档之间的相似度?
- 2. Lucene中的查询和文档之间的余弦相似度
- 3. 测量文档集之间的相似度
- 4. 计算数百万个文档之间的相似性度量
- 5. 如何计算两个句子之间的相似度(句法和语义)
- 6. 查找两个文档之间的相似度
- 7. 如何测量两个图像之间的相似度?
- 8. 如何测量不同尺寸图像之间的相似度
- 9. 如何测量两个python代码块之间的相似度?
- 10. 计算Lucene文档和质心之间的相似度
- 11. 查找句子与句子列表之间的相似度
- 12. 测量2个向量之间的相似度
- 13. 如何在相似性度量和差异度量之间进行转换?
- 14. 计算两个句子之间的语法相似度
- 15. Lucene fieldNorm相似度计算和查询时间值之间的差异
- 16. 通过在python中使用余弦相似度返回最相似的文档与查询文档相比较
- 17. 如何提高查询和文档相似性度量python TFIDF,BM25精度,召回
- 18. 如何获得MALLET中两个文档之间的余弦相似度?
- 19. 如何计算两个张量之间的余弦相似度?
- 20. 如何测量matlab中两个二维复杂场之间的相似度?
- 21. Doc2Vec Gensim文档和主题之间的相似性
- 22. 测量两个二进制文件之间的相似性?
- 23. 如何计算两个license.txt文件之间的相似度?
- 24. 如何根据文档集合计算文档相似度?
- 25. 语句之间的语义相似性
- 26. 与COLT的2个语义向量之间的相似度量
- 27. OpenCV - 如何检测和测量两个帧之间的角度?
- 28. Python中两个文本文档之间的相似性
- 29. WPF和Silverlight之间的相似之处
- 30. Django和Rails之间的相似之处
是的。但是如果你想要一个更具体的答案,你将不得不提出更具体的问题。 (你已经搜索了什么?你期望找到什么,你发现了什么,取而代之的是,whathaveyoutried.com,显示你做了一切你可以自己找到答案的东西,但找不到它) – 2013-03-03 15:43:38
实际上我已经阅读了一些树内核,并比较了句子树的2个句子。但是我不能总结如何在查询文档相似性中使用这个基本思想。它会真的提供合乎逻辑的结果! – hatemfaheem 2013-03-03 15:47:55
衡量查询与文档中每个单独句子之间的句法相似性是有意义的,即查找检索与查询最相似的句子而不是整个文档。有一个名为Question Answering的字段(http://en.wikipedia.org/wiki/Question_answering)旨在做到这一点,而且AFAIK语法相似性正用于QA。 – vpekar 2013-03-04 19:41:18