gpt4 book ai didi

R tm 包 : utf-8 text

转载 作者:行者123 更新时间:2023-12-04 12:27:08 24 4
gpt4 key购买 nike

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

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

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

是否可以以某种方式将编码分配给 tm 函数?我试过 this ,但文字本身很好,问题在于使用 tm 包。

让示例文本为:

Ол арман – әлем елдерімен терезесі тең қатынас құрып, әлем картасынан ойып тұрып орын алатын Тәуелсіз Мемлекет атану еді. Ол арман – тұрмысы бақуатты, түтіні түзу ұшқан, ұрпағы ертеңіне сеніммен қарайтын бақытты Ел болу еді. Біз армандарды ақиқатқа айналдырдық. Мәңгілік Елдің іргетасын қаладық. Мен қоғамда «Қазақ елінің ұлттық идеясы қандай болуы керек?» деген сауал жиі талқыға түсетінін көріп жүрмін. Біз үшін болашағымызға бағдар ететін, ұлтты ұйыстырып, ұлы мақсаттарға жетелейтін идея бар. Ол – Мәңгілік Ел идеясы. Тәуелсіздікпен бірге халқымыз Мәңгілік Мұраттарына қол жеткізді.



我的简单代码是这样的:
(基于 onertipaday.blogspot.com 教程:)
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) 输出中正确显示。

非常感谢任何帮助! :)

最佳答案

问题来自默认的标记器。 tm默认使用 scan_tokenizer它会丢失编码(也许您应该联系维护者以添加编码参数)。

scan_tokenizer function (x) { scan(text = x, what = "character", quote = "", quiet = TRUE) }



一种解决方案是提供您自己的分词器来创建矩阵项。我正在使用 strsplit :
scanner <- function(x) strsplit(x," ")
ap.tdm <- TermDocumentMatrix(ap.corpus,control=list(tokenize=scanner))

然后你得到编码良好的结果:
findFreqTerms(ap.tdm, lowfreq=2)
[1] "арман" "біз" "еді" "әлем" "идеясы" "мәңгілік"

关于R tm 包 : utf-8 text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21251736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com