R LDA 主题建模:结果主题包含非常相似的单词

2024-02-26

All:

我是 R 主题建模的初学者,这一切都是三周前开始的。所以我的问题是我可以成功地将数据处理成语料库、文档术语矩阵和 LDA 函数。我有推文作为输入,大约有 460,000 条推文。但我对结果不满意,所有主题的单词都非常相似。

packages <- c('tm','topicmodels','SnowballC','RWeka','rJava')
if (length(setdiff(packages, rownames(installed.packages()))) > 0) {
install.packages(setdiff(packages, rownames(installed.packages())))  
}

options( java.parameters = "-Xmx4g" )
library(tm)
library(topicmodels)
library(SnowballC)
library(RWeka)

print("Please select the input file");
flush.console();
ifilename <- file.choose();
raw_data=scan(ifilename,'string',sep="\n",skip=1);

tweet_data=raw_data;
rm(raw_data);
tweet_data = gsub("(RT|via)((?:\\b\\W*@\\w+)+)","",tweet_data)
tweet_data = gsub("http[^[:blank:]]+", "", tweet_data)
tweet_data = gsub("@\\w+", "", tweet_data)
tweet_data = gsub("[ \t]{2,}", "", tweet_data)
tweet_data = gsub("^\\s+|\\s+$", "", tweet_data)
tweet_data = gsub('\\d+', '', tweet_data)
tweet_data = gsub("[[:punct:]]", " ", tweet_data)

max_size=5000;
data_size=length(tweet_data);
itinerary=ceiling(data_size[1]/max_size);
if (itinerary==1){pre_data=tweet_data}else {pre_data=tweet_data[1:max_size]}

corp <- Corpus(VectorSource(pre_data));
corp<-tm_map(corp,tolower);
corp<-tm_map(corp,removePunctuation);
extend_stop_word=c('description:','null','text:','description','url','text','aca',
                   'obama','romney','ryan','mitt','conservative','liberal');
corp<-tm_map(corp,removeNumbers);
gc();
IteratedLovinsStemmer(corp, control = NULL)
gc();
corp<-tm_map(corp,removeWords,c(stopwords('english'),extend_stop_word));
gc();
corp <- tm_map(corp, PlainTextDocument)
gc();
dtm.control = list(tolower= F,removePunctuation=F,removeNumbers= F,
                   stemming= F, minWordLength = 3,weighting= weightTf,stopwords=F)

dtm = DocumentTermMatrix(corp, control=dtm.control)
gc();
#dtm = removeSparseTerms(dtm,0.99)
dtm = dtm[rowSums(as.matrix(dtm))>0,]
gc();

best.model <- lapply(seq(2,50, by=2), function(k){LDA(dtm[1:10,], k)})
gc();
best.model.logLik <- as.data.frame(as.matrix(lapply(best.model, logLik)))
best.model.logLik.df <- data.frame(topics=c(seq(2,50, by=2)), LL=as.numeric(as.matrix(best.model.logLik)))
k=best.model.logLik.df[which.max(best.model.logLik.df$LL),1];
cat("Best topic number is k=",k);
flush.console();
gc();
lda.model = LDA(dtm, k,method='VEM')
gc();
write.csv(terms(lda.model,50), file = "terms.csv");
lda_topics=topics(lda.model,1);

以下是我得到的结果:

> terms(lda.model,10)
      Topic 1     Topic 2    Topic 3    Topic 4    Topic 5   
 [1,] "taxes"     "medicare" "tax"      "tax"      "jobs"    
 [2,] "pay"       "will"     "returns"  "returns"  "plan"    
 [3,] "welfare"   "tax"      "gop"      "taxes"    "gop"     
 [4,] "will"      "care"     "taxes"    "will"     "military"
 [5,] "returns"   "can"      "abortion" "paul"     "will"    
 [6,] "plan"      "laden"    "can"      "medicare" "tax"     
 [7,] "economy"   "vote"     "tcot"     "class"    "paul"    
 [8,] "budget"    "economy"  "muslim"   "budget"   "campaign"
 [9,] "president" "taxes"    "campaign" "says"     "says"    
[10,] "reid"      "just"     "economy"  "cuts"     "can"     
      Topic 6     Topic 7     Topic 8    Topic 9    
 [1,] "medicare"  "tax"       "medicare" "tax"      
 [2,] "taxes"     "medicare"  "tax"      "president"
 [3,] "plan"      "taxes"     "jobs"     "jobs"     
 [4,] "tcot"      "tcot"      "tcot"     "taxes"    
 [5,] "budget"    "president" "foreign"  "medicare" 
 [6,] "returns"   "jobs"      "plan"     "tcot"     
 [7,] "welfare"   "budget"    "will"     "paul"     
 [8,] "can"       "energy"    "economy"  "health"   
 [9,] "says"      "military"  "bush"     "people"   
[10,] "obamacare" "want"      "now"      "gop"      
      Topic 10    Topic 11   Topic 12  
 [1,] "tax"       "gop"      "gop"     
 [2,] "medicare"  "tcot"     "plan"    
 [3,] "tcot"      "military" "tax"     
 [4,] "president" "jobs"     "taxes"   
 [5,] "gop"       "energy"   "welfare" 
 [6,] "plan"      "will"     "tcot"    
 [7,] "jobs"      "ohio"     "military"
 [8,] "will"      "abortion" "campaign"
 [9,] "cuts"      "paul"     "class"   
[10,] "paul"      "budget"   "just" 

正如你所看到的,“税收”“医疗保险”这些词贯穿了所有主题。我注意到当我玩的时候dtm = removeSparseTerms(dtm,0.99)结果可能会略有变化。以下是我的示例输入数据

> tweet_data[1:10]
 [1] " While  Romney friends get richer  MT  Romney Ryan Economic Plans Would Increase Unemployment Deepen Recession"                 
 [2] "Wayne Allyn Root claims proof of Obama s foreign citizenship  During a radio show interview Resist"                             
 [3] " President Obama  Chief Investor  Leave Energy Upgrades to the Businesses  Reading President Obama誷 latest Execu   "           
 [4] " Brotherhood  starts crucifixions Opponents of Egypt s Muslim president executed  naked on trees   Obama s    tcot"             
 [5] "  Say you stand with President Obama裻he candidate in this election who trusts women to make their own health decisions     "   
 [6] " Romney  Ryan Descend Into Medicare Gibberish "                                                                                 
 [7] "Maddow  Romney demanded opponents tax returns and lied about residency in    The Raw Story"                                     
 [8] "Is it not grand  How can Jews reconcile Obama   Carter s treatment of Jews Israel  How ca    "                                  
 [9] "   The Tax Returns are Hurting Romney  Badly  "                                                                                 
[10] "  Replacing Gen Dempsey is cruicial to US security  Dempsey  disappointed  by anti Obama campaign by ex military members  h    "

请帮忙!!谢谢!


减少案例中的主题数量。这将增强主题模型的聚类能力。现在您正在将现有模型与另一个模型重叠。由于主题索引随迭代而变化,因此也很难跟踪结果/比较。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R LDA 主题建模:结果主题包含非常相似的单词 的相关文章

  • 如何在 R 树形图中省略标签?

    我一直在使用R 树形图包 http cran r project org web packages treemap treemap pdf我有一个 2 层深的树形图 我希望打印第二级标签 但不打印第一级标签 使用手册页中的示例 tmPlot
  • R ifelse 错误地用整数替换文本

    我正在使用 Udacity 课程中的一些数据 链接 Reddit 调查回复 https s3 amazonaws com udacity hosted downloads ud651 reddit csv 我试图通过使用单个单词替代替换任何
  • dmvnorm MVN 密度 - RcppArmadillo 实现比 R 包慢,包括一些 Fortran

    The solution现已上线RCPP画廊 http gallery rcpp org articles dmvnorm arma 我从 RcppArmadillo 中的 mvtnorm 包重新实现了 dmvnorm 我有点喜欢犰狳 但我
  • mclapply 调用应该嵌套吗?

    正在筑巢parallel mclapply是个好主意吗 require parallel ans lt mclapply 1 3 function x mclapply 1 3 function y y x unlist ans Outpu
  • 读取并绘制从大文件中读取的数据

    我们有相当大的文件 大约为 1 1 5 GB 主要是日志文件 其中包含易于解析为 csv 的原始数据 随后应该将其绘制成图表以生成一组图形图像 目前 我们正在使用 bash 脚本将原始数据转换为 csv 文件 其中仅包含需要绘制图表的数字
  • 如何在R中使用OpenNLP获取POS标签?

    这是 R 代码 library NLP library openNLP tagPOS lt function x s lt as String x word token annotator lt Maxent Word Token Anno
  • Openxlsx 多次验证损坏输出文件

    我正在尝试添加多个验证并将公式添加到 Excel 文件 这是我使用的代码 library openxlsx fileTemplate lt New01 xlsx wbTemplate lt loadWorkbook fileTemplate
  • 如何加速 R for 循环?

    我正在为 R 中 GWmodel 包中的 gwr basic 函数运行以下 for 循环 我需要做的是收集任何给定带宽的估计参数的平均值 代码如下 library GWmodel data DubVoter Dub voter LARent
  • 字边界正则表达式问题

    我在使用单词边界时遇到问题 b在我的正则表达式中 我正在使用 R 但当我尝试时问题也存在http regexr com http regexr com 我使用的模式是 bs l b 虽然我预计下面的第 1 行和第 3 行能够匹配此模式 但只
  • 了解用于处理色边距的scale_fill_continuous_divergingx参数输入

    这个问题是我上一个问题的延续here https stackoverflow com questions 58718527 setting midpoint for continuous diverging color scale on a
  • 如何融合颜色和形状?

    当我有一个超过 6 个值的变量时 我的麻烦就开始了 因为这是 ggplot2 中 scale shape 函数的当前最大值 由于这个问题 我尝试使用另一个变量来解决这个问题 我只是将原始变量的长度包裹起来 这是我的示例代码 dataf lt
  • 如何从多边形数据中提取栅格值然后加入到空间数据框中?

    我想将多边形数据和栅格数据合并到一个数据框中 以便随后在 R 中使用 randomForests 包 这涉及首先提取每个多边形的平均栅格值 到目前为止 我有以下内容 load libraries library raster library
  • 修复 ggplot 中构面中的数据顺序

    我在使用 ggplot 绘制数据时遇到问题 我无法使每个方面内的数据正确排序 我的样本数据是 data lt structure list Parameter c 0 1 0 7 0 0 0 2 0 2 0 7 0 0 0 1 0 3 0
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • 使用pivot_longer将R中的多列变成一列[重复]

    这个问题在这里已经有答案了 我有一个dfpopulation看起来像这样 未列出所有列和行 Region X1975 X1976 X1977 X2008 National Total 942420 93717 94974 132802 Be
  • R:如何根据规范更改数据框中的列名称

    我有一个数据框 它的开头如下 SM H1455 SM V1456 SM K1457 SM X1461 SM K1462 ENSG00000000419 8 290 270 314 364 240 ENSG00000000457 8 252
  • R-在多个图的外缘绘制居中图例

    我想在具有多个绘图的设备中的绘图区域之外绘制居中图例 SO 中提出了许多关于更改 R 图中图例位置的问题 略有不同 例如 1 R 组合图的通用标题和图例 https stackoverflow com questions 8736966 r
  • 建模前减少因子水平数量

    我有一个 2600 个级别的因子 我想在建模之前将其减少到 10 我想我可以通过这样的操作来做到这一点 如果一个因素列出的次数少于 x 次 则应将其放入名为 其他 的存储桶中 这是一些示例数据 df lt data frame colour
  • 分组和计数以获得接近值

    我想计算每country的次数status is open以及次数status is closed 然后计算closerate per country Data customer lt c 1 2 3 4 5 6 7 8 9 country

随机推荐

  • swscaler 错误的 src 图像指针

    我完全迷路了 我正在尝试捕获 30 个屏幕截图并将它们放入视频中FFMPEG在 Windows 10 下 它一直告诉我 swscaler 073890a0 bad src image pointers 结果视频完全是绿色的 如果我将格式更改
  • 为 sqlalchemy 应用程序编写 pytest

    我正在尝试将单元测试转换为 py 测试 我正在使用单元测试示例 class TestCase unittest TestCase def setUp self app config TESTING True app config CSRF
  • 使用 http-server 永远部署节点应用程序

    我想使用 http server 和forever js 将我的应用程序部署到远程 ubuntu 服务器 但forever js需要JS文件的路径 而不是可执行文件的路径 所以我无法将密钥传递给 http server 迄今为止最好的解决方
  • 跨域不起作用

    React 让我说跨源请求被阻止 同源策略不允许读取远程资源http localhost 8080 用户 http localhost 8080 users 原因 CORS 标头 Access Control Allow Origin 丢失
  • 在 Windows 8、python 3.3 中创建虚拟环境时出现问题

    我正在尝试在 Python 中创建虚拟环境 但无论重新安装 python setuptools 和 pip 多少次 我总是会收到错误 我的计算机运行的是 Windows 8 并且使用的是 Python 3 3 E Documents pro
  • Android:UI 线程被阻止

    在我的应用程序中 我创建了一个自定义对话框 它在 webview 和普通 android 应用程序中显示 并且在显示对话框时我做了一些后台操作 当我调用 mydialog 函数时 它会显示我的自定义对话框 它还返回一些值 当我使用 webv
  • Spring data jpa findByDate 始终返回空列表

    我在我的应用程序中使用 spring data jpa 1 9 2 mysql connector 5 1 和 hibernate 4 3 11 Final 我的 Order 类有一个日期类型的 创建 属性 Entity public cl
  • 应用程序扩展如何访问包含应用程序 Documents/ 文件夹中的文件

    在应用程序扩展中 有没有一种方法可以获取从存储在 var mobile Containers Data Application Documents 文件夹中的包含应用程序生成的图像 为了使文件可用于应用程序扩展 您必须使用Group Pat
  • 使用本地端的 sudo 权限和我的个人 SSH 密钥,通过 SSH 将远程文件同步到我的本地计算机

    我想同步目录 var sites example net 从远程计算机到本地计算机上同一路径的目录 远程计算机仅使用密钥而不是密码来验证 SSH 连接 在我的本地计算机上 我在 ssh config 中设置了一个别名 以便我可以轻松运行ss
  • 当软键盘可见时无法单击按钮

    当文本输入元素具有焦点 并且软键盘可见 时 我无法直接单击提交按钮 清晰可见 我必须首先关闭键盘 通过单击其他地方或键盘上的 完成 然后单击提交按钮 这是令人困惑的行为 我考虑过在键盘可见时完全删除登录按钮 但这太令人困惑了 因为用户不知道
  • 在 Rails 3 中使用液体

    我正在制作一个 Rails 博客引擎用于学习目的 我想使用液体作为模板引擎 我有这样的东西 posts controller rb def index posts Post all end posts index html liquid f
  • 如何在 iPhone 中自动布局 ui 视图控制器中的按钮?

    我的尺寸为 4 英寸 并且在 3 个不同的行中添加了 4 个图标 所有图标的尺寸均为 60x60 我可以在 iphone 4s 5 5s 中获得正确的视图 但在 iphone 6 和 6 plus 中则不能 那么我如何对其应用自动布局 并使
  • 当设置为 CRLF 时,SSIS 将 LF 读取为终止符

    使用 SSIS 2012 我的平面文件连接管理器我有一个分隔文件 其中行分隔符设置为CRLF 但是当它处理文件时 我有一个文本列 其中有一个LF在里面 这导致它将其读取为行终止符 从而导致失败 有任何想法吗 我没有 SSIS 经验 但作为一
  • 我收到错误:执行量角器时找不到模块“黄瓜”

    我找到了一些描述设置步骤的帖子 但是当我按照它们操作时 我收到一个错误 找不到模块 黄瓜 我全局安装了黄瓜和量角器以及量角器 黄瓜 并且可以单独执行它们 但在尝试使用黄瓜框架执行量角器时则不能 我使用的配置文件如下 var env requ
  • 为什么 WCF 删除了我的回复消息中的 wsa:To 标头?

    我有一个 WCF 服务IDispatchMessageInspector and a BeforeSendReply修改消息的 WS Addressing 标头的方法 这适用于所有标头 但 wsa To 除外 该标头正在从回复中删除 pub
  • Azure Web应用程序自动从Http重定向到Https

    我在 Azure 上有一个网站 并且已使用自定义域对其进行配置 网站始终从 http 重定向到 https 因此在浏览器中出现不安全错误 如下所示 我不想将其重定向到 https 解决方案是什么 它重定向到 https 的原因是什么 在网络
  • 如何将serversocket绑定到特定IP?

    如果我有一个String代表 IP 地址 IPv4 或 IPv6 我如何创建ServerSocket并绑定到这个IP 而不关心传入的IP是IPv4还是IPv6 我看到有一个构造函数 ServerSocket int port int bac
  • Selenium Python - 无头 Chrome 不复制到剪贴板

    我正在编写一个脚本来运行 Python Selenium 并将一些内容复制到剪贴板 它一直工作得很好 直到我以无头模式运行它 现在它不会将文本复制到剪贴板 有谁知道如何解决这个问题 这是我的配置 options webdriver Chro
  • 解释 list_for_each_entry 和 list_for_each_entry_safe

    谁能解释一下 Linux 中 list for each entry 和 entry safe 循环的工作原理 它像是 list for each entry type cursor struct list head list member
  • R LDA 主题建模:结果主题包含非常相似的单词

    All 我是 R 主题建模的初学者 这一切都是三周前开始的 所以我的问题是我可以成功地将数据处理成语料库 文档术语矩阵和 LDA 函数 我有推文作为输入 大约有 460 000 条推文 但我对结果不满意 所有主题的单词都非常相似 packa