R tm包:utf-8文本

2024-03-06

我想为 utf-8 中的非英语文本创建一个词云(实际上,它是哈萨克语)。

文本在 tm 包的检查功能中显示得绝对正确。 但是,当我搜索词频时,所有内容都显示不正确:

问题在于文本显示为编码字符而不是单词。西里尔字符显示正确。结果,词云变得一团糟。

是否可以以某种方式将编码分配给 tm 函数?我试过this https://stackoverflow.com/questions/18677571/assigning-arabic-text-to-r-variables,但文本本身没问题,问题在于使用 tm 包。

让示例文本为:

Ол арман – יлем елдерімен терезесі тейс Латынас Лкрып, יлем картасынан ойып тирып орын алатын Т֙уелсіз Мемлекет ат any еді。 Ол арман – тикармысы бакуаты, татіні тишзу холу еді, гртейне сеніммен харайтын бакытты Ел болу еді. Біз армандарды акикатка айналдырдыка。 Маладык ЕлдіУ іргетасын ЛаладыЛ。 Мен ЛоГамда «Казак елінік идеясы Ландай болуы керек?» жен сауал жиі талий тали сетінін куріп жирмін。 Біз Яшін болашаГымызка бакдар ететін,блтты бйыстырып,жетелейтін идея бар。 Ол – Муйсгілік Ел идеясы。 Туелсіздікпен бірге халкымыз Муйгілік Мбраттарына Лол жеткізді.

我的简单代码是这样的: (基于onertipaday.blogspot.com http://onertipaday.blogspot.com/2011/07/word-cloud-in-r.html教程:)

require(tm)
require(wordcloud)
text<-readLines("text.txt", encoding="UTF-8")
ap.corpus <- Corpus(DataframeSource(data.frame(text)))
ap.corpus <- tm_map(ap.corpus, removePunctuation)
ap.corpus <- tm_map(ap.corpus, tolower)
ap.tdm <- TermDocumentMatrix(ap.corpus)
ap.m <- as.matrix(ap.tdm)
ap.v <- sort(rowSums(ap.m),decreasing=TRUE)
ap.d <- data.frame(word = names(ap.v),freq=ap.v)
table(ap.d$freq)

1  2 
44  4 

findFreqTerms(ap.tdm, lowfreq=2)

[1] "<U+04D9>лем"            "арман"                  "еді"                   
[4] "м<U+04D9><U+04A3>гілік"

这些词应该是:“טлем”、арман”、“еді”、“м֙Угілік”。它们正确显示在inspect(ap.corpus) output.

非常感谢任何帮助! :)


问题来自于默认的分词器。tm默认情况下使用scan_tokenizer它会丢失编码(也许您应该联系维护者添加编码参数)。

scan_tokenizer 函数 (x) { 扫描(文本= x,什么=“字符”,引用=“”,安静= TRUE)}

一种解决方案是提供您自己的分词器来创建矩阵项。我在用strsplit:

scanner <- function(x) strsplit(x," ")
ap.tdm <- TermDocumentMatrix(ap.corpus,control=list(tokenize=scanner))

然后你就得到了编码良好的结果:

findFreqTerms(ap.tdm, lowfreq=2)
[1] "арман"    "біз"      "еді"      "әлем"     "идеясы"   "мәңгілік"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R tm包:utf-8文本 的相关文章

  • 如何根据多个条件创建列?

    我有一个数据框 我想根据多个条件创建一个列 v1 v2 v3 v4 v5 4 1 2 4 5 5 5 2 4 5 6 21 9 20 30 50 6 4 5 7 9 10 3 6 5 9 基本上 使用以下可能的值创建 v6 Cat dog
  • 计算字符串向量中连续数字的函数

    我想创建一个函数 它接受至少 1 个元素的字符串对象并包含数字 2 到 5 并确定是否存在至少 N 长度的连续数字 其中 N 是实际数字值 如果是 则返回字符串 true 否则返回字符串 false 例如 Input 555123 Outp
  • 识别包含字符串的行的最快方法[重复]

    这个问题在这里已经有答案了 我有一个字符串数据框 尺寸为 30 列 x 500 万行 我想识别包含任何预定义字符串列表的行 有没有比下面我的 apply any 方法更快的方法 这是一个可重现的示例 请注意 此示例中的字符串是随机数 但在我
  • rpart 决策树中的 rel 误差和 x 误差有什么区别? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个来自 UCI 机器学习数据库的纯分类数据框https archive ics uci edu ml datasets Diabet
  • ggplot 的每个方面都有不同的 `geom_hline()`

    这个问题在这里已经有答案了 library tidyverse ggplot mpg aes cty hwy geom point facet grid year fl geom hline yintercept mean mpg hwy
  • 使用非标准评估公式

    我正在创建一个使用的包非标准评价 http adv r had co nz Computing on the language html跟踪列的含义 该包在函数之间传递数据框 这些函数执行同一组列的各种操作 非标准评估对此非常有用 my s
  • 使用操作按钮在闪亮的 R 中添加包含现有数据框的新行

    我正在构建一个闪亮的表单 它将从 textInput 字段获取数据 并将这些输入与文本文件 将通过文件输入上传 组合起来 并在主面板中显示输出 有一个操作按钮用于第一次更新数据 从文本输入中获取数据并与处理后的文本文件合并 我添加了另一个操
  • 使用行内 r 代码作为 R markdown 标头的一部分

    我希望使用行 R 代码作为 r markdown 文件中标头的一部分 然而 当我编织文件时 标题上使用的字体是不同的 如何确保字体相同 下面是一个简单的例子 r 1 1 Header 您可以将内容括在反引号中以表示内联 r 代码 如下所示
  • autoplot.microbenchmark 实际绘制了什么?

    根据文档 microbenchmark autoplot 使用 ggplot2 生成更清晰的微基准计时图 凉爽的 让我们尝试一下示例代码 library ggplot2 tm lt microbenchmark rchisq 100 0 r
  • 使用括号表示 y 轴上的负值 ggplot2

    我想在括号中显示 y 轴负值 而不是用负号 例如 我想显示 2 000 而不是 2 000 我在 R 中使用 ggplot2 我尝试在scale y continuous内部使用 negative parens TRUE 如下所示 但没有成
  • 使用 Hmisc LaTeX 函数编织时,LaTeX 表格的标题不出现

    我正在尝试使用 table 和 Hmisc 包创建 LaTeX 表 但是 我在显示标题时遇到问题 这是一个可重现的示例 r results asis data dow lt sample 1 7 100 replace TRUE purp
  • 合并的 xts 对象未对齐

    请尝试以下代码 library quantmod getSymbols SPY from 1950 01 01 SPY lt to monthly SPY temp lt xts Cl SPY index SPY 您将获得一个xts具有相同
  • 使用格式表过滤数据框

    样本数据 修改自formattablegithub 文档 df lt data frame id 1 10 name c Bob Ashley James David Jenny Hans Leo John Emily Lee age c
  • 在 R 中使用 apply() 时出现未使用参数错误

    当我尝试对日期列使用 apply 条件以返回一组系数时 收到错误消息 我有一个数据集 为简单起见 此处进行了修改 但可重现 ADataset lt data table Epoch c 2007 11 15 2007 11 16 2007
  • 基于两列对数据框中的行进行求和[重复]

    这个问题在这里已经有答案了 我想添加一列的值 将它们按两列分组 我找到了如何在一列上执行此操作 但无法弄清楚如何在两列上执行此操作 例如 如果我有以下数据框 x c a a b b c c a a b b c c a a b b c c y
  • if(interactive()) 是否相当于 Python 中的“if __name__ == ”__main__“: main()”?

    我希望 R 脚本有一个 main 函数 可以在交互模式下执行 但在获取文件时不应执行 main 函数 已经有一个关于这个的问题了 https stackoverflow com questions 2968220 is there an r
  • 将 SAS sas7bdat 数据读入 R

    R 有哪些选项可以读取本机 SAS 格式的文件 sas7bdat 进入R The NCES 共同核心 https nces ed gov ccd pubschuniv asp例如 包含以此格式保存的大量数据文件存储库 为了具体起见 让我们集
  • 在两个向量之间交换元素(交叉)

    假设我有 chromosome 1 lt c 0010000001010000 chromosome 2 lt c 0100000001001010 我该如何实施step 3 5 Evaluate NC1 否 中 1 个chromosome
  • charset-utf8 和字符实体

    我建议将我的 windows 1252 XHTML 网页转换为 UTF 8 我的编码中有以下字符实体 39 撇号 9658 右指针 9668 左指针 如果我使用编辑器更改字符集并将页面保存为 UTF 8 撇号保留为字符实体 指针被转换为代码
  • 获取数据集 R 包中所有对象名称的列表?

    如何获取对象中对象的确切名称列表datasets https stat ethz ch R manual R devel library datasets html 00Index html包裹 我在这里找到了很多 data package

随机推荐

  • AngularJs 指令 - 如何从指令内获取属性值

    知道如何从指令内部访问属性值吗 angular module portal directives directive languageFlag routeParams function params return function scop
  • 如何使命名管道在 C++ 和 .NET 之间工作?

    我在让命名管道在 c 和 NET 之间工作方面经历了一段非常艰难的时期 我在创建在 2 个 C 应用程序或 2 个 NET 应用程序之间运行的命名管道时没有遇到任何问题 我对这种通信没有问题 我在某些项目中使用这种情况 C 方面 LPTST
  • SendMessage 模拟右键单击使目标应用程序崩溃

    我正在编写一个 C 自动化工具 由于 Microsoft UI 自动化不提供任何模拟右键单击或弹出上下文菜单的方法 因此我正在使用SendMessage改为执行此操作 我宁愿不使用SendInput因为我不想抓住焦点 当我打电话时SendM
  • 如何下载 WatchKit? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道 WatchKit 何时可供 iOS 开发者下载 Xcode 6 是否会包含一个模拟器以允许在
  • 找不到模块“./App.svelte”或其相应的类型声明

    我有一个将电子与 svelte 集成以及打字稿支持集成的设置 当我运行rollup编译 svelte 应用程序的脚本 我找不到模块 App svelte错误如下图所示 Plugin typescript rollup plugin type
  • PHP 警告:非法字符串偏移

    我是 PHP 新手 今天 PHP 从 5 3 3 版本迁移到 5 4 4 版本 Debian Squeeze 到 Debian Wheezy 之后 我从 Apache 日志中收到此错误 gt PHP 警告 xyz 中的非法字符串偏移 php
  • 如何在实体框架 4.3.1 中禁用迁移?

    有没有办法在 Entity Framework 4 3 1 中禁用迁移 我从项目中删除了迁移文件夹以及数据库中生成的表 但它不起作用 如何删除迁移 如果您不想使用迁移 但同时希望 EF 为您创建数据库 则只需设置正确的数据库初始值设定项 D
  • keras.backend的clear_session()方法没有清理拟合数据

    我正在研究不同类型数据质量的拟合精度结果的比较 好数据 是特征值中没有任何NA的数据 坏数据 是特征值中具有 NA 的数据 坏数据 应该通过一些值修正来修复 作为值修正 它可能会用零或平均值替换 NA 在我的代码中 我尝试执行多个拟合过程
  • 为什么这是一个最终递归可变参数宏?

    以下构造在 VisualStudio 2013 中进行编译 我刚刚创建了一个新的 consoleApplication 项目 并且仅更改了主 cpp 因此您只需粘贴它并尝试一下即可 它显然所做的是创建一个最终递归可变参数宏 include
  • Python 代码:几何布朗运动 - 出了什么问题?

    我对 Python 还很陌生 但是对于大学论文 我需要应用一些模型 最好使用 Python 我花了几天时间处理我附加的代码 但我真的帮不上忙 出了什么问题 它没有创建一个看起来像带有漂移的标准布朗运动的随机过程 我的参数 如 mu 和 si
  • Windows 通用项目不支持 VS2017 页面

    从昨天开始我遇到了一个相当不愉快的问题 我清除了 NuGet 缓存 因为我无法让 NuGet 包与我的代码之一一起使用 但这没有帮助 反而搞砸了我之前编写的 UWP 应用程序 我的代码中的每个元素都会出现错误 如下所示 在 XAML 中 主
  • PostgreSQL中如何实现嵌套INSERT语句?

    我有两张桌子 group and groupmembers 在插入行时group表 我还想插入两个值 groupid 来自组表的 ID 和userid 创建该组的用户的 ID 到groupmembers桌子 这些是表格 CREATE TAB
  • 如何将根(裸)域重定向到 www - heroku 和 zerigo

    我有一个域 example com 和 www example com 我正在使用 Heroku 和 Zerigo 作为 DNS 现在我有一个从我的 Hostgator 帐户从根域到 www example com 的转发 但这不起作用 我
  • python 的 swig 类型映射:输入和输出数组

    我想在 Python 中使用一个 C 函数 extern int convertAtoB stateStruct myStruct const double PointA 3 double PointB 3 使用 SWIG 我想我需要定义一
  • Web API 2 和 .NET 4.5.1 迁移后 GlobalConfiguration.Configure() 不存在

    我最近开始关注本指南 http www asp net mvc tutorials mvc 5 how to upgrade an aspnet mvc 4 and web api project to aspnet mvc 5 and w
  • Flutter - BloC Cubit 函数不发出状态

    我正在创建一个 Flutter 应用程序 我在项目中添加了一个 BloC 以管理状态 我创建了一个包含数据的列表 我想使用 添加 按钮手动将项目添加到 ListView 我写了一段代码 我的物品 肘节 class ItemCubit ext
  • 如何在 Alembic 迁移中使用现有的 sqlalchemy 枚举 (Postgres)

    在过去的某个时候 我运行了一次 alembic 迁移 它创建了一个users桌子像 def upgrade op create table users sa Column id sa Integer autoincrement True n
  • Eclipse RCP 和 tycho - 无法解析 org.eclipse.swt.widgets.Button 类型。它是从所需的 .class 文件间接引用的

    情况 我有一个 Eclipse RCP 应用程序 我正在尝试使用 Eclipse 的 tycho 插件构建它 当我在 IDe 内执行 Eclipse 应用程序时 应用程序正常执行 当使用 tycho 构建应用程序时 抛出以下错误 The t
  • Linq2Sql 检索数据点

    我目前正在开发一个使用 linq2sql 作为数据库访问框架的项目 现在有很多 linq 查询 它们基本上执行以下操作 var result from
  • R tm包:utf-8文本

    我想为 utf 8 中的非英语文本创建一个词云 实际上 它是哈萨克语 文本在 tm 包的检查功能中显示得绝对正确 但是 当我搜索词频时 所有内容都显示不正确 问题在于文本显示为编码字符而不是单词 西里尔字符显示正确 结果 词云变得一团糟 是