问题标签 [quanteda]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 使用带有 R 的 ngram 的随机森林
我是 R 新手,我尝试使用随机森林的客户评论进行情绪分析。
为此,我想使用 ngrams(bigrams 和 trigrams)作为特征(我使用了 quanteda R 包quanteda package。
这是R代码:
但是在构建随机森林分类器时出现错误:
你能帮我解决这个错误吗?
谢谢
r - Quanteda 短语令牌不起作用
情况一
在 Quanteda 包中应用短语totoken 函数时,我得到了奇怪的结果:
问题:有时我会lokale_energie_producties
返回,有时会错误地返回原始lokale energie producties
.
这个问题似乎与字典中的点有关。这些点是(?)处理开头和结尾字符(例如,“1lokale energie productieniveau”)所必需的。
情况2
在 txt 文件中加载时,prasetotoken 函数根本不起作用。
注意。使用该函数readtext
而不是readLines
引发以下错误
任何帮助表示赞赏。
r - 使用 Quanteda 计算 ngram 和文档之间的卡方值
我使用 Quanteda R 包从文本 Data_clean$Review 中提取 ngrams(这里是 1grams 和 2grams),但我正在寻找一种使用 R 来计算文档和提取的 ngrams 之间的卡方的方法:
这是我为清理文本(review)和生成 n-gram 所做的 R 代码。
请问有什么想法吗?
谢谢你
r - 如何计算单词与文档中特定术语的接近度
我试图找出一种方法来计算文档中特定术语的单词接近度以及平均接近度(按单词)。我知道关于 SO 有类似的问题,但没有什么能给我我需要的答案,甚至没有给我指出有用的地方。假设我有以下文字:
我希望能够看到每次出现在“火”(也可互换)单词两侧(左侧 15 和右侧 15)的 15 个(我希望这个数字是可互换的)单词内出现的单词出现。我想查看每个“火”实例的每个单词及其在这 15 个单词跨度中出现的次数。因此,例如,“火”被使用了 3 次。在这 3 次中,“光”一词在两侧各 15 个字以内出现两次。我想要一个显示单词的表格,它在指定的 15 附近出现的次数、最大距离(在本例中为 12)、最小距离(为 7)和平均距离(其中是 9.5)。
我想我需要几个步骤和包来完成这项工作。我的第一个想法是使用 quanteda 的“kwic”功能,因为它允许您围绕特定术语选择一个“窗口”。然后,基于 kwic 结果的术语频率计数并不难(去除了频率的停用词,但没有去除单词邻近度度量)。我真正的问题是找到与焦点术语的最大、最小和平均距离,然后将结果放入一个漂亮的整洁表中,这些术语按频率降序排列,列给我频率计数、最大距离、最小距离和平均距离。
这是我到目前为止所拥有的:
任何帮助深表感谢。
r - ANEW 字典可以用于 quanteda 中的情感分析吗?
我正在尝试找到一种方法来实现英语单词的情感规范(荷兰语),以便使用 Quanteda 进行纵向情感分析。我最终想要的是每年的“平均情绪”,以显示任何纵向趋势。
在数据集中,所有单词 a 由 64 位编码员在 4 个类别上以 7 点李克特量表评分,这为每个单词提供了一个平均值。我想做的是取其中一个维度,并用它来分析情绪随时间的变化。我意识到 Quanteda 具有实现 LIWC 字典的功能,但如果可能的话,我更喜欢使用开源 ANEW 数据。
本质上,我需要帮助来实现,因为我是编码和 R 的新手
ANEW 文件看起来像这样(在 .csv 中):
WORD/SCORE:癌症:1.01,土豆:3.56,爱情:6.56
r - Quanteda 包,朴素贝叶斯:如何预测不同特征的测试数据?
我曾经quanteda::textmodel_NB
创建一个模型,将文本分类为两个类别之一。我将模型拟合到去年夏天的训练数据集上。
现在,我正试图在今年夏天使用它来对我们在工作中获得的新文本进行分类。我尝试这样做并收到以下错误:
生成错误的函数中的代码可以在第 157 到 165 行找到。
我认为这是因为训练数据集中的单词与测试数据集中使用的单词不完全匹配。但是为什么会出现这个错误呢?我觉得好像——为了在现实世界的例子中有用——该模型应该能够处理包含不同特征的数据集,因为这可能在应用中总是会发生。
所以我的第一个问题是:
1. 这个错误是朴素贝叶斯算法的属性吗?或者是函数的作者做出了这样的选择?
然后引出了我的第二个问题:
2. 我该如何解决这个问题?
为了解决第二个问题,我提供了可重现的代码(最后一行生成了上面的错误):
我唯一想做的就是手动使特征相同(我假设这会填充0
对象中不存在的特征),但这会产生一个新错误。上面示例的代码是:
但是,此代码会生成一个新错误:
如何将此朴素贝叶斯模型应用于具有不同特征的新数据集?
r - 拆分文档特征矩阵中的 ngrams (quanteda)
我想知道是否可以在文档特征矩阵 (dfm) 中拆分 ngram 特征,例如一个二元组会产生两个单独的一元组?
所以,上面的 dfm 会产生这样的结果:
为了更好地理解:我从将特征从德语翻译成英语得到了 dfm 中的 ngram。复合词(“Emissionsminderung”)在德语中很常见,但在英语中并不常见(“emission reduction”)。
先感谢您!
编辑:以下可用作可重现的示例。
r - 使用 R 和 Quanteda 拆分语料库
我正在为 NLP 开发一个项目。我需要在 .txt 文件中获取一些博客、新闻和推文(您可能已经听说过这个顶点)并创建 n-gram 频率。
我对将txt
文件带到频率data frame
进行分析的步骤进行了实验:
该过程中的瓶颈是标记化和转换为 dfm 步骤(超过 5 倍以上的时间)。
我有两个选择:
No. 1 似乎是最好的,但到目前为止,我还没有找到可以以我想要的方式执行此操作的函数或包。所以我会写一个很长的代码,从头开始拆分读取 20 个块(由于我的计算限制)。
有没有办法可以将使用quanteda
包创建的语料库(“语料库”“列表”)拆分成块(由我定义的行),以便我可以以“流式”的方式标记化并转向 dfm?
r - 使用 Quanteda 的文档术语矩阵
我有一个具有这种结构的数据框 df :
然后我尝试使用 quanteda 包创建 DocumentTermMatris :
我得到这个矩阵:
采用这种结构:
所以我认为这很好,但我认为: text6001 , text5367, text5272 ...参考文档名称...我的问题是这个矩阵中的行是有序的吗?或放在矩阵中的随机数?
谢谢
编辑 :
我创建了一个文档词频:
然后,我创建了一个 tf-idf 矩阵:
然后我想将 tfidf 矩阵合并到 Rank 列有这样的东西
你能帮忙完成这个合并吗?
谢谢
r - 使用 Chi2 和 Quanteda 进行特征提取
我有一个具有这种结构的数据框 df :
然后我尝试使用 quanteda 包创建 DocumentTermMatris :
我想如何用文档计算每个特征(术语)的 CHi2 值,以便根据 Chi2 值提取最佳特征
你能帮我解决这个问题吗?
编辑 :
在这里,我有我的 dfm 矩阵,然后我创建了我的 tf-idf 矩阵:
我想确定这些特征和文档之间的 chi2 值(这里我有 60300 个文档):
但是,由于我有 60300 目标,我不知道如何自动执行此操作。我在 Quanteda 手册中看到 dfm 函数中的 groups 选项可以解决这个问题,但我不知道该怎么做。:(
编辑 2:
排名评论 10 一直很好 1 不错的电影 3 像往常一样好
在这里,我尝试使用 dfm 对文档进行分组:
但它无法对文档进行分组
你能帮我解决这个问题吗
谢谢