R tm包余弦相似度

时间:2019-03-15 14:32:42

标签: r similarity tm cosine

我正在尝试使用R tm软件包来解决字符串比较问题(单字字符串,而不是多字文本)。 在这些方面,我已经使用了Levenshtein距离可以给我带来有意义的结果,但是我并不完全满意。 在阅读了一篇我觉得很有趣的文章之后,我现在正尝试使用余弦相似度。

我已经研究了文档,并且阅读了一些文章,但是目前看来,我还不了解算法功能。

当我将术语作为单词使用时,我就可以使用它。

例如

import sys, subprocess
sys.stdout.write("Prefix: ")
response = subprocess.check_output(["cmd", "--option", "filename.x"])
sys.stdout.write(response.decode("UTF-8"))
sys.stdout.flush()

但是我无法要求系统对待每个字母 docs <- c ("open letters", "closed letters", "letters) terms <- "open", "closed", "letters")

这将导致使用术语文档矩阵进行字符串比较。 但是也许已经有我的错误了。

在tm中实现单个单词字符串比较会是什么?

感谢您的帮助, P.s.我没有发布代码,因为这是一个更普遍的问题,但是我可以创建一个例子以防万一。

尼古拉

这是根据建议的工作代码:

c ("a", "b", "c", "d")

1 个答案:

答案 0 :(得分:-1)

这是我所能做的。 给一个文档,在我的情况下为“ doc”字符串向量,系统将为我提供TDM矩阵,如果完全激活匹配项(例如,关闭->关闭门),则条件为1,但门与oor不匹配。

示例:

library(tm)
doc <- c( "closed door", "Open door", "door", "doo", "oor", "house" )
doc_corpus <- Corpus( VectorSource(doc) )
control_list <- list(removePunctuation = TRUE, tolower = TRUE)
tdm <- TermDocumentMatrix(doc_corpus,  control_list)
tf <- as.matrix(tdm)

enter image description here

关键是我已经阅读过,我也可以这样做,因为术语是单个字母,我想确认这是否有可能

enter image description here

因此要构建一个TDM,然后建立余弦距离以计算弦之间的距离。 但是我找不到任何文档。

感谢您的帮助, 尼古拉