我正在对TM包进行大量分析.我最大的问题之一是与词干和词干变换有关.
假设我有几个与会计相关的术语(我知道拼写问题).
在阻止后我们有:
accounts -> account
account -> account
accounting -> account
acounting -> acount
acount -> acount
acounts -> acount
accounnt -> accounnt
Run Code Online (Sandbox Code Playgroud)
结果:3个条款(帐户,帐户,帐户)我希望1(帐户),因为所有这些都与同一个词有关.
1)纠正拼写是一种可能性,但我从来没有在R中尝试过.这是否可能?
2)另一种选择是建立一个参考列表,即账户=(账户,账户,会计,会计,账户,账户,账户),然后将所有事件替换为主条款.我怎么会在R?
再一次,任何帮助/建议将不胜感激.
我搜索了stackoverflow和web,只能找到部分解决方案,或者由于TM或qdap的变化而找不到的部分解决方案.问题如下:
我有一个数据帧:ID和文本(简单文档ID /名称,然后一些文本)
我有两个问题:
第1部分:如何创建tdm或dtm并维护文档名称/ ID?它只在inspect(tdm)上显示"character(0)".
第2部分:我想只保留一个特定的术语列表,即删除自定义停用词的相反.我希望这发生在语料库中,而不是tdm/dtm.
对于第2部分,我使用了一个我在这里得到的解决方案:如何在tm字典中实现邻近规则来计算单词?
这个发生在tdm部分!对于使用"tm_map(my.corpus,keepOnlyWords,customlist)"之类的东西,第2部分是否有更好的解决方案?
任何帮助将不胜感激.非常感谢!
我有一个具有多个日期范围的数据框(准确地说是 45):
Range Start End
1 2014-01-01 2014-02-30
2 2015-01-10 2015-03-30
3 2016-04-20 2016-10-12
... ... ...
Run Code Online (Sandbox Code Playgroud)
他们永远不会重叠
我还有一个包含各种事件日期(200K+)的数据框:
Event Date
1 2014-01-02
2 2014-03-20
3 2015-04-01
4 2016-08-18
... ...
Run Code Online (Sandbox Code Playgroud)
我想测试这些日期是否在以下任何范围内:
Event Date InRange
1 2014-01-02 TRUE
2 2014-03-20 FALSE
3 2015-04-01 FALSE
4 2016-08-18 TRUE
...
Run Code Online (Sandbox Code Playgroud)
执行此测试的最佳方法是什么?我查看了 lubridate 的between和interval函数以及各种 Stackoverflow 问题,但找不到好的解决方案。
我正在循环文本以查找和计算各种词典中的特定单词.我使用两个FOR循环,它们非常慢并且需要数天才能完成.下面的可重现代码:
library(stringr)
#Sample data
tweets=data.frame(id=c(1,2,3),text=c("This is a tweet that contains word1",
"And here you can find word1 and word2 word2",
"And here is only one word3 and one word3a"))
words=data.frame(id=c(1,2,3),word=c("word1","word2","word3"))
for(i in 1:nrow(tweets)){
for(j in 1:nrow(words)){
term = paste("\\<",words[j,2],"\\>", sep="")
if (str_count(tweets[i,2], term) != 0) {
tmp <- data.frame(id=tweets[i,1],termfound=words[j,2],count=str_count(tweets[i,2], term), row.names=NULL)
message("ID ",tweets[i,1]," - Word '",words[j,2],"' found ",str_count(tweets[i,2], term)," times")
#sqlSave(myconn, tmp, "DataTable", append=T, rownames=F)
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:
我有大约1M行文本和大约25,000个单词.
Message行仅用于调试.
最终值写入SQL - 行注释掉,因为它不可重现.
有什么方法可以改进吗?我在想一个APPLY函数???
干杯B.