我想要达到什么目的:
我一直在寻找一种方法,但我找不到一种(有效的)方法:
我的尝试:
Python:
nltk
与gensim
结合使用(就我所能编写和阅读的范围而言,它只能使用单词相似性(但不能按顺序排列
账户)。
R:
使用tm
构建了一个TermDocumentMatrix
,看起来很有前途,但却不能将任何东西映射到这个矩阵上。此外,这个TermDocumentMatrix
似乎考虑了顺序,但遗漏了同义词(我想)。
我知道柠檬化并不顺利,哈哈:)
问题:
有没有任何方法可以使用R或Python实现上述步骤?一个简单的示例代码将是很好的(或参考一个好的教程)
有很多方法可以完成上面描述的工作,当然,要找到一个优化的解决方案还需要大量的测试。但是这里有一些有用的功能可以帮助使用python/nltk解决这个问题。在
1。标记化
在这一步中,你需要将单个句子分解成一系列单词。在
样本代码:
2。查找每个单词的同义词。
样本代码:
^{pr2}$如果您不熟悉,可以随意研究synsets,但现在只需知道上面返回的是一个列表,因此可能会返回多个synset。在
从synset可以得到同义词列表。在
样本代码:
很好,现在你可以把你的句子转换成一个单词列表,并且你可以找到句子中所有单词的同义词(同时保持句子的顺序)。此外,您可能希望考虑删除停止字和词干标记,所以如果您认为有帮助的话,可以随意查找这些概念。在
当然,您需要为所有的句子编写代码,并将数据存储在某种数据结构中,但这可能超出了本问题的范围。在
这很难回答,因为做这件事的可能性是无穷的,但这里有几个例子来说明你如何处理它。在
如果你对二元分类感兴趣,你可以做一些简单的事情,比如,我以前见过这个句子的变化句吗?如果是,得分为1,否则得分为0。这可能有用,但可能不是你想要的。在
根据python词典中新句子的存储情况,计算出python词典中每个句子的词性。在
示例:
training_sentence1='这是我最棒的句子'
training_sentence2='这不可怕'
下面是一个关于如何存储这两个句子的数据结构示例:
然后你可以写一个函数来遍历每一个新句子的数据结构,根据它的深度,给它一个更高的分数。在
结论:
以上两个例子只是解决相似性问题的一些可能方法。关于计算文本间语义相似度的文章/白皮书不计其数,所以我的建议是探索多种选择。在
我故意排除了有监督的分类模型,因为您从来没有提到过可以访问带标签的培训数据,但是如果您有一个黄金标准的数据源,那么这种方法当然是可能的。在
相关问题 更多 >
编程相关推荐