使用 RWeka 2-gram 和 3-gram 而不是 1-gram

2024-01-20

我正在尝试使用 RWeka NGramTokenizer 函数从训练语料库中提取 1-gram、2-gram 和 3-gram。不幸的是,只得到1克。有我的代码:

train_corpus
# clean-up
cleanset1<- tm_map(train_corpus, tolower)
cleanset2<- tm_map(cleanset1, removeNumbers)
cleanset3<- tm_map(cleanset2, removeWords, stopwords("english"))
cleanset4<- tm_map(cleanset3, removePunctuation)
cleanset5<- tm_map(cleanset4, stemDocument, language="english")
cleanset6<- tm_map(cleanset5, stripWhitespace)

# 1-gram
NgramTokenizer1 <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 1))
train_dtm_tf_1g <- DocumentTermMatrix(cleanset6, control=list(tokenize=NgramTokenizer1))
dim(train_dtm_tf_1g)
[1]  5905 15322

# 2-gram
NgramTokenizer2 <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
train_dtm_tf_2g <- DocumentTermMatrix(cleanset6, control=list(tokenize=NgramTokenizer2))
dim(train_dtm_tf_2g)
[1]  5905 15322

# 3-gram
NgramTokenizer3 <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
train_dtm_tf_3g <- DocumentTermMatrix(cleanset6, control=list(tokenize=NgramTokenizer3))
dim(train_dtm_tf_3g)
[1]  5905 15322

每次都得到相同的结果,这显然是错误的。

# combining together 1-gram, 2-gram and 3-gram from corpus 
    NgramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 3))
train_dtm_tf_ng <- DocumentTermMatrix(cleanset6, control=list(tokenize=NgramTokenizer))
dim(train_dtm_tf_ng)
[1]  5905 15322

# A numeric for the maximal allowed sparsity in the range from bigger zero to smaller one
train_rmspa_m_tf_ng_95<-removeSparseTerms(train_dtm_tf_ng, 0.95)
    [1] 5905  172

# creat bag of words (BOW) vector of these terms for use later
train_BOW_3g_95 <- findFreqTerms(train_rmspa_m_tf_3g_95)

# take a look at the terms that appear in the last 5% of the instances
train_BOW_3g_95

  [1] "avg"        "februari"   "januari"    "level"      "nation"     "per"        "price"     
  [8] "rate"       "report"     "reserv"     "reuter"     "also"       "board"      "export"    
  [15] "march"      "may"        "month"      "oil"        "product"    "total"      "annual"    
  [22] "approv"     "april"      "capit"      "common"     "compani"    "five"       "inc"       
  [29] "increas"    "meet"       "mln"        "record"     "said"       "share"      "sharehold" 
  [36] "stock"      "acquir"     "addit"      "buy"        "chang"      "complet"    "continu" 

     ...

仅 1 克。 我尝试按以下方式重写我的命令:

NgramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 3))

但没有成功。还尝试添加另一行:

options(mc.cores=1)

在 NgramTokenizer 命令之前,但没有变化。 有什么帮助吗?


我今天遇到了同样的问题。由于某些原因,“tm_map”似乎不能很好地与 SimpleCorpus 配合使用。

我改变了我的代码

corpus = Corpus(VectorSource(pd_cmnt$QRating_Explaination))

to

corpus = VCorpus(VectorSource(pd_cmnt$QRating_Explaination))

现在它可以正常工作并返回 2 克。

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

使用 RWeka 2-gram 和 3-gram 而不是 1-gram 的相关文章

随机推荐

  • 是否可以设置 html5 音频标签的样式?

    我还没有找到任何关于如何做到这一点的资源 像改变播放器颜色这样简单的事情就很好了 是的 您可以隐藏内置浏览器 UI 通过删除controls属性来自audio 而是构建您自己的界面并使用 Javascript 控制播放 source htt
  • Angular 如何根据路线更改导航菜单标题

    我正在使用 Angular 4 在当前项目中开发仪表板布局 当用户在应用程序的不同部分之间导航时 我需要更新导航菜单标题标题以反映应用程序的当前部分 例如 当用户访问设置时 页面标题 应更改为 设置 该项目基于 net core 2 Ang
  • 突变残基和位置的数字编码

    我正在编写一个 python 程序 它必须计算突变残基和位置的数字编码一组字符串 这些字符串是蛋白质序列 这些序列存储在 fasta 格式文件中 每个蛋白质序列用逗号分隔 不同蛋白质的序列长度可能不同 在此我试图找到以下位置和序列 变异了
  • wordpress 在functions.php第5行中的非对象上调用成员函数add_section()

    嘿 我对 php 和 WordPress 开发有点陌生 我只是在尝试 WordPress 的工作原理以及主题的工作原理 现在我已经尝试多次查找此内容但没有帮助 总是有一些不同的东西 对那些人有用的东西 对我不起作用 这是代码
  • Android Compose 创建摇动动画

    我正在尝试在 Jetpack Compose 中制作形状的晃动动画 我想在用户输入无效的 Pin 码时使用此动画来显示错误 但我能找到的只是滑入 滑出动画和一些缩放动画 我有什么想法可以做到这一点吗 Update 在 Thracian 回答
  • 混合 Threepenny-Gui 和 StateT

    我有一个关于 Threepenny Gui 与 StateT 交互的问题 考虑这个玩具程序 每次单击按钮时 都会在列表中添加一个 Hi 项目 import Control Monad import Control Monad State i
  • 如何在 Azure 移动应用程序中实现自定义身份验证

    在Azure Mobile Apps的最新更新中 终于添加了对自定义身份验证的支持 参考 https azure microsoft com en us blog azure mobile apps november 2015 update
  • Socialauth - 您可以在重定向中使用相同的会话吗?

    我正在尝试使用社会认证 http code google com p socialauth wiki GettingStarted 使用 google facebook 等登录 我假设这里是 google 并询问其工作原理 我使用的是没有
  • 如何防止 Swagger-ui 中的 xml-wrapper 元素

    我使用的是 swagger ui 版本 2 2 8 我们现有的 API 可以生成 application json 以及 application xml 对于 json 中的单个记录结果 它会生成 person id 23 name Joh
  • 如何在 Hadoop 中序列化 Java 对象?

    对象应该实现Writable接口以便在 Hadoop 中传输时序列化 采取卢森ScoreDoc以类为例 public class ScoreDoc implements java io Serializable The score of t
  • 如何检查特定类型字符的 UITextField 值,例如字母还是数字?

    我想要做的是 如果文本字段中包含除字母 数字 破折号和空格之外的任何内容 则将下面的 if 语句中的一些布尔值设置为 true 然后对于电子邮件字段检查是否有有效的电子邮件 这就是我检查长度的方式 if countElements text
  • vb6 ADODB 连接字符串到 sql server 2008

    我最近将数据库从 sql server 2005 迁移到 windows server 2008 上的 2008 客户端从 XP 计算机连接得很好 SQL Management Studio 2008 也是如此 我还使用 LINQPad 测
  • 在 Android 上共享音频输入

    我正在为 Android 手机应用程序做一些准备研究 该应用程序将涉及用户同时拨打电话时的语音搜索或语音识别 我发现当我正在通话并尝试调用语音搜索或类似的操作 从麦克风获取输入 时 我会收到 音频错误 消息 手机应用程序是否对手机的麦克风输
  • 我应该在抽象方法的主体中放置什么?

    假设我有以下抽象类Foo import abc class Foo abc ABC abc abstractmethod def bar self raise NotImplementedError 我应该在主体中放入什么bar方法 我看到
  • 如何判断该帐户是否是Google Apps帐户?

    我正在使用 net V3 dll 版本 2 0 1 0 的 Google 文档列表 api 我正在使用此链接中所述的客户端登录身份验证https developers google com google apps documents lis
  • iPhone 推送通知自定义声音,静音模式下没有振动?

    因此 我的推送通知可以通过自定义声音在我的应用程序中正常工作 然而 当我的iPhone处于静音模式时 我发送带有自定义声音的推送通知时 声音明显不播放 但也没有振动 如果我发送带有 sound chime 或类似不存在的内容的推送通知 iP
  • 如何实现动态@ConfigurationProperties前缀

    我需要将动态环境名称作为配置属性的前缀传递 我将从命令行将环境作为 VM 参数传递 并且应为该环境加载所有属性 我的配置 Configuration EnableConfigurationProperties PropertySource
  • 如何使用正则表达式提取PHP中的文本[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的文字 12a49803 713c 4204 a8e6 248e554a352d Content Type text plain c
  • MaterialDatePicker 不适用于 Android

    我想将项目的日期选择器更改为 Android 的 Material Components 提供的日期选择器 但它不起作用 这是我尝试过的代码 MaterialDatePicker Builder
  • 使用 RWeka 2-gram 和 3-gram 而不是 1-gram

    我正在尝试使用 RWeka NGramTokenizer 函数从训练语料库中提取 1 gram 2 gram 和 3 gram 不幸的是 只得到1克 有我的代码 train corpus clean up cleanset1 lt tm m