我试图查找同时出现在多个文档中的单词。
让我们举个例子。
doc1: "this is a document about milkyway"
doc2: "milky way is huge"
正如您在上面的两个文档中看到的那样,两个文档中都出现了单词“milkyway”,但是在第二个文档中,术语“milkyway”由空格隔开,而在第一个文档中则没有。
我正在执行以下操作以获取R中的文档术语矩阵。
library(tm)
tmp.text <- data.frame(rbind(doc1, doc2))
tmp.corpus <- Corpus(DataframeSource(tmp.text))
tmpDTM <- TermDocumentMatrix(tmp.corpus, control = list(tolower = T, removeNumbers = T, removePunctuation = TRUE,stopwords = TRUE,wordLengths = c(2, Inf)))
tmp.df <- as.data.frame(as.matrix(tmpDTM))
tmp.df
1 2
document 1 0
huge 0 1
milky 0 1
milkyway 1 0
way 0 1
根据上面的矩阵,术语
milkyway
仅出现在第一个文档中。我希望以上矩阵中的“milkyway”一词在两个文档中都能得到1。这只是一个例子。我需要对许多文档进行此操作。最终,我希望能够以类似的方式处理此类单词(“milkyway”和“milky way”)。
编辑1:
我是否可以强制术语文档矩阵以这样一种方式进行计算,即对于它要查找的任何单词,它都不应仅在字符串中而是在字符串中将其作为单独的单词来查找?例如,一个术语是
milky
,并且有一个文档this is milkyway
,因此此处当前在此文档中不存在milky
,但是如果该算法在字符串中查找有问题的单词,它也会在字符串milky
中找到单词milkyway
,因此单词milky
和way
都将计入我的两个文档中(前面的示例)。编辑2:
最终,我希望能够计算文档之间的相似度余弦索引。
最佳答案
您将需要先将文档转换为原始单词表示形式的文件包。原始词与一组词匹配的地方。原始词也可以在语料库中。
例如:
milkyway -> {milky, milky way, milkyway}
economy -> {economics, economy}
sport -> {soccer, football, basket ball, basket, NFL, NBA}
您可以在使用同义词字典和像levenstein这样的编辑距离来计算余弦距离之前,先构建这样的字典,以完成同义词字典。
计算“运动”键涉及更多。
关于r - 以相同方式处理空格分隔的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099621/