Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用csv文件中的两列创建术语频率矩阵,单位为R?_R_Csv_Text Mining - Fatal编程技术网

使用csv文件中的两列创建术语频率矩阵,单位为R?

使用csv文件中的两列创建术语频率矩阵,单位为R?,r,csv,text-mining,R,Csv,Text Mining,我是R的新手。我正在挖掘csv文件中的数据——一列中的报告摘要,另一列中的报告日期,第三列中的报告机构。我需要调查与“欺诈”相关的术语是如何随着时间的推移而变化的,或者是如何随着机构的不同而变化的。我已经过滤了包含“欺诈”一词的行,并创建了一个新的csv文件 如何创建一个以年为行、以术语为列的术语频率矩阵,以便查找顶级频率术语并进行聚类 基本上,我需要创建一个术语频率矩阵,根据年份确定术语频率 Input data: (csv) **Year** **Summary** (around 3

我是R的新手。我正在挖掘csv文件中的数据——一列中的报告摘要,另一列中的报告日期,第三列中的报告机构。我需要调查与“欺诈”相关的术语是如何随着时间的推移而变化的,或者是如何随着机构的不同而变化的。我已经过滤了包含“欺诈”一词的行,并创建了一个新的csv文件

如何创建一个以年为行、以术语为列的术语频率矩阵,以便查找顶级频率术语并进行聚类

基本上,我需要创建一个术语频率矩阵,根据年份确定术语频率

Input data: (csv)
**Year**    **Summary** (around 300 words each)    
1945             <text>
1985             <text>
2011             <text>

Desired 0utput : (Term frequency matrix)

       term1     term2    term3  term4 .......
1945     3         5        7       8 .....
1985     1         2        0       7  .....
2011      .            .   .    

Any help would be greatly appreciated.
输入数据:(csv)
******年摘要**(约300字)
1945
1985
2011
期望输出:(术语频率矩阵)
第1条第2条第3条第4条。。。。。。。
1945     3         5        7       8 .....
1985     1         2        0       7  .....
2011      .            .   .    
任何帮助都将不胜感激。

以后请提供一个最简单的工作示例。

这并不完全是使用tm,而是qdap,因为它更适合您的数据类型:

library(qdap)
#create a fake data set (please do this in the future yourself) 
dat <- data.frame(year=1945:(1945+10), summary=DATA$state) 

##    year                               summary
## 1  1945         Computer is fun. Not too fun.
## 2  1946               No it's not, it's dumb.
## 3  1947                    What should we do?
## 4  1948                  You liar, it stinks!
## 5  1949               I am telling the truth!
## 6  1950                How can we be certain?
## 7  1951                      There is no way.
## 8  1952                       I distrust you.
## 9  1953           What are you talking about?
## 10 1954         Shall we move on?  Good then.
## 11 1955 I'm hungry.  Let's eat.  You already?
或者,您可以创建tru DocumentTerm矩阵,如下所示:


以后请提供一个最简单的工作示例。

这并不完全是使用tm,而是qdap,因为它更适合您的数据类型:

library(qdap)
#create a fake data set (please do this in the future yourself) 
dat <- data.frame(year=1945:(1945+10), summary=DATA$state) 

##    year                               summary
## 1  1945         Computer is fun. Not too fun.
## 2  1946               No it's not, it's dumb.
## 3  1947                    What should we do?
## 4  1948                  You liar, it stinks!
## 5  1949               I am telling the truth!
## 6  1950                How can we be certain?
## 7  1951                      There is no way.
## 8  1952                       I distrust you.
## 9  1953           What are you talking about?
## 10 1954         Shall we move on?  Good then.
## 11 1955 I'm hungry.  Let's eat.  You already?
或者,您可以创建tru DocumentTerm矩阵,如下所示:



这个老问题因为不清楚而结束了。对不起,我是新来的。添加了额外的数据。为了将来参考,closed并不意味着“死亡”。封闭式问题旨在作为“暂停”,直到问题可以通过编辑得到改进。(如果无法改进,通常会在一段时间后删除。)“封闭”术语在这方面有点误导(目前正在进行一些修订)。无论如何,你的问题不太符合我们在这里拍摄的标准。例如,通过谷歌搜索“r中的术语频率矩阵”,我很快就能找到tm软件包。您应该首先研究一些类似的工具,进行一些尝试,然后在某些特定代码不起作用时寻求帮助。谢谢您的回复。我知道tm软件包,在这里发布之前我已经尝试了很久。但期望的输出并不是通过tm软件包获得的——它基本上接收了一个文本语料库,并根据术语所在的文档创建了TDM。在这里,我的要求是不同的。如果我错了,请纠正我,并提出解决方案。提前谢谢。旧问题已结束,因为它不清楚。对不起,我是新来的。添加了额外的数据。为了将来参考,closed并不意味着“死亡”。封闭式问题旨在作为“暂停”,直到问题可以通过编辑得到改进。(如果无法改进,通常会在一段时间后删除。)“封闭”术语在这方面有点误导(目前正在进行一些修订)。无论如何,你的问题不太符合我们在这里拍摄的标准。例如,通过谷歌搜索“r中的术语频率矩阵”,我很快就能找到tm软件包。您应该首先研究一些类似的工具,进行一些尝试,然后在某些特定代码不起作用时寻求帮助。谢谢您的回复。我知道tm软件包,在这里发布之前我已经尝试了很久。但期望的输出并不是通过tm软件包获得的——它基本上接收了一个文本语料库,并根据术语所在的文档创建了TDM。在这里,我的要求是不同的。如果我错了,请纠正我,并提出解决方案。提前谢谢。多方便的功能啊!您的
wfm
比使用
tm
软件包中的
DataframeSource
容易得多。对于这种类型的数据更容易,但是对于语料库数据(tm是为其设计的)则容易得多。漂亮!非常感谢泰勒。将尝试此代码。我的csv文件有98000行。你会建议对整个语料库使用相同的代码吗?此外,如何调查与“欺诈”相关的术语是如何随着时间的推移而变化的,或者是如何因机构而异的?我们能做聚类吗?这些问题我不知道答案。您可能想使用对应分析,但这超出了我的专业知识范围。另外,在结尾使用
t
是不必要的,并且可能会无缘无故地花费大量的时间。qdap可以很容易地完成您想要做的事情,但当您甚至还没有阅读该函数的文档时,很难花时间来帮助您。如果你看一下wfm,你会发现有一个简单的方法来处理stopwords。如果你愿意学习,请在pdf中搜索stem(或查看函数列表),我愿意提供帮助,但我不愿意为人们编写代码。多么方便的函数啊!您的
wfm
比使用
tm
软件包中的
DataframeSource
容易得多。对于这种类型的数据更容易,但是对于语料库数据(tm是为其设计的)则容易得多。漂亮!非常感谢泰勒。将尝试此代码。我的csv文件有98000行。你会建议对整个语料库使用相同的代码吗?此外,如何调查与“欺诈”相关的术语是如何随着时间的推移而变化的,或者是如何因机构而异的?我们能做聚类吗?这些问题我不知道答案。您可能想使用对应分析,但这超出了我的专业知识范围。另外,在结尾使用
t
是不必要的,并且可能会无缘无故地花费大量的时间。qdap可以很容易地完成您想要做的事情,但当您甚至还没有阅读该函数的文档时,很难花时间来帮助您。如果你看一下wfm,你会发现有一个简单的方法来处理stopwords。如果你愿意学习,请在pdf中搜索stem(或查看函数列表),我愿意提供帮助,但我不愿意为人们编写代码。
with(dat, dtm(summary, year))

## > with(dat, dtm(summary, year))
## A document-term matrix (11 documents, 41 terms)
## 
## Non-/sparse entries: 51/400
## Sparsity           : 89%
## Maximal term length: 8 
## Weighting          : term frequency (tf)