我有一堆像下面这样的文本,带有不同的智能引号 - 用于单引号和双引号。我所知道的软件包最终所能得到的就是删除这些字符,但我希望将它们替换为正常的引号。
\n\ntextclean::replace_non_ascii("You don\xe2\x80\x98t get \xe2\x80\x9cyour\xe2\x80\x9d money\xe2\x80\x99s worth")\nRun Code Online (Sandbox Code Playgroud)\n\n收到的输出:"You dont get your moneys worth"
预期输出:"You don\'t get "your" money\'s worth"
如果有人有正则表达式来一次替换所有这样的引号,我也将不胜感激。
\n\n谢谢!
\n我第一次尝试使用 R 进行主题建模。所以,这可能是一个非常愚蠢的问题,但我被困住了,谷歌搜索也没有给出明确的答案。
给定一个文档语料库,我使用 LDA 函数来识别语料库中的不同主题。一旦模型拟合完毕,我如何将该模型应用到一批新文档上,以将它们分类到迄今为止发现的主题中?
示例代码:
data("AssociatedPress", package = "topicmodels")
n <- nrow(AssociatedPress)
train_data <- sample(1:n,0.75*n,replace = FALSE)
AssociatedPress_train <- AssociatedPress[(train_data),]
AssociatedPress_test <- AssociatedPress[!(train_data),]
ap_lda <- LDA(AssociatedPress_train, k = 5, control = list(seed = 1234))
Run Code Online (Sandbox Code Playgroud)
现在,我可以使用拟合模型 ap_lda 对 AssociatedPress_test 中的文档进行分类吗?如果是,怎么办?如果没有,为未来的分类创建模型的最佳方法是什么?
我有带有评论栏的调查数据。我正在寻找对回复的情绪分析。问题是数据中有很多语言,我不知道如何从集合中消除多种语言停用词
'nps' 是我的数据源,nps$customer.feedback 是评论栏。
首先我对数据进行标记
#TOKENISE
comments <- nps %>%
filter(!is.na(cusotmer.feedback)) %>%
select(cat, Comment) %>%
group_by(row_number(), cat)
comments <- comments %>% ungroup()
Run Code Online (Sandbox Code Playgroud)
摆脱停用词
nps_words <- nps_words %>% anti_join(stop_words, by = c('word'))
Run Code Online (Sandbox Code Playgroud)
然后使用 Stemming 和 get_sentimets("bing") 按情绪显示字数。
#stemgraph
nps_words %>%
mutate(word = wordStem(word)) %>%
inner_join(get_sentiments("bing") %>% mutate(word = wordStem(word)), by =
c('word')) %>%
count(cat, word, sentiment) %>%
group_by(cat, sentiment) %>%
top_n(7) %>%
ungroup() %>%
ggplot(aes(x=reorder(word, n), y = n, fill = sentiment)) +
geom_col() +
coord_flip() +
facet_wrap( ~cat, scales = …Run Code Online (Sandbox Code Playgroud) 我尝试使用R、jiebaR和语料库生成一个词云并获取中文语音的词频,但无法制作语料库。这是我的代码:
library(jiebaR)
library(stringr)
library(corpus)
cutter <- worker()
v36 <- readLines('v36.txt', encoding = 'UTF-8')
seg_x <- function(x) {str_c(cutter[x], collapse = '')}
x.out <- sapply(v36, seg_x, USE.NAMES = FALSE)
v36.seg <- x.out
v36.seg
library(quanteda)
corpus <- corpus(v36.seg) #Error begins here.
summary(corpus, showmeta = TRUE, 1)
texts(corpus)[1]
tokens(corpus, what = 'fasterword')[1]
tokens <- tokens(v36.seg, what = 'fasterword')
dfm <- dfm(tokens)
dfm
Run Code Online (Sandbox Code Playgroud)
我的文本文件包含以下段落:
当我创建语料库时出现错误。R 返回:
Error in corpus.default(v36.seg) :
corpus() only works on character, corpus, Corpus, data.frame, kwic objects.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么文本有问题。如果您能帮我解决问题,我将不胜感激。谢谢。
我有一个域名列表,并希望确定域名的名称,看起来像是色情网站.有什么更好的方法呢?色情域名列表如http://dumpz.org/56957/.此域名可用于教授系统色域应该如何显示.另外我还有其他列表 - http://dumpz.org/56960/ - 此列表的许多域名也是色情片,我想通过名称来确定它们.
我已经看到这个问题用其他语言回答但在R.
[特别是对于R文本挖掘]我有一组从语料库中获得的常用短语.现在我想搜索这些短语出现在另一个语料库中的次数.
有没有办法在TM包中做到这一点?(或另一个相关的包)
例如,假设我有一系列短语,"标签"从CorpusA获得.而另一个语料库,CorpusB,有几千个子文本.我想知道在CorpusB中标签中的每个短语出现了多少次.
一如既往,感谢您的帮助!
使用tm包从语料库构建文档术语矩阵很简单.我想从文档术语矩阵构建语料库.
设M是文档集中的文档数.设V是该文档集的词汇表中的术语数.然后,文档 - 术语 - 矩阵是M*V矩阵.
我还有一个长度为V的词汇量向量.词汇量向量中是由文档 - 术语 - 矩阵中的索引表示的词.
从dtm和词汇向量,我想构建一个"语料库"对象.这是因为我想要阻止我的文档集.我手动构建了我的dtm和词汇 - 即从来没有一个tm"语料库"对象代表我的数据集,所以我不能使用该功能,
tm_map(corpus, stemDocument, language="english")
Run Code Online (Sandbox Code Playgroud)
我一直在努力构建一个解决方法,在这里我可以阻止词汇,只保留独特的单词,但是在尝试保持dtm和词汇矢量之间的对应关系时会有些复杂.
理想情况下,最终结果是我的词汇矢量被阻止并且仅包含唯一条目,并且dtm索引对应于词干词汇矢量.如果你能想到其他一些方法,我也会很感激.
如果我可以简单地从我的dtm和词汇矢量构建一个"语料库",干掉语料库,然后转换回dtm和词汇矢量(我已经知道如何进行这些转换),我的麻烦就会得到解决.
如果我能进一步澄清问题,请告诉我.
我正在尝试使用wget从多个Pubmed论文中获取文本,但似乎NCBI网站不允许这样做.任何替代品?
Bernardos-MacBook-Pro:pangenome_papers_pubmed_result bernardo$ wget -i ./url.txt
--2016-05-04 10:49:34-- http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4560400/
Resolving www.ncbi.nlm.nih.gov... 130.14.29.110, 2607:f220:41e:4290::110
Connecting to www.ncbi.nlm.nih.gov|130.14.29.110|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2016-05-04 10:49:34 ERROR 403: Forbidden.
--2016-05-04 10:49:34-- http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4547177/
Reusing existing connection to www.ncbi.nlm.nih.gov:80.
HTTP request sent, awaiting response... 403 Forbidden
2016-05-04 10:49:34 ERROR 403: Forbidden.
Run Code Online (Sandbox Code Playgroud) 我有一个包含200多个文档的大型文档语料库.正如你可以从这么大的语料库中看到的那样,一些单词拼写错误,以不同的格式使用,依此类推.我已经完成了标准的文本处理,如转换为小写,删除标点符号,词干.在进行分析之前,我试图用一些单词替换正确的拼写并将其标准化.我使用与下面相同的语法完成了100次替换,对于大多数替换,它按预期工作.但是,有些(约5%)不起作用.例如,以下替换似乎只有有限的影响:
docs <- tm_map(docs, content_transformer(gsub), pattern = "medecin|medicil|medicin|medicinee", replacement = "medicine")
docs <- tm_map(docs, content_transformer(gsub), pattern = "eephant|eleph|elephabnt|elleph|elephanyt|elephantant|elephantant", replacement = "elephant")
docs <- tm_map(docs, content_transformer(gsub), pattern = "firehood|firewod|firewoo|firewoodloc|firewoog|firewoodd|firewoodd", replacement = "firewood")
Run Code Online (Sandbox Code Playgroud)
由于效果有限,我的意思是即使某些替代品正在运作,但有些则不然.例如,尽管尝试替换" elephantant "," medicinee "," firewoodd ",但在我创建DTM(文档术语矩阵)时它们仍然存在.
我不知道为什么会出现这种混合效应.
另外,以下一行是用一些collect的组合替换语料库中的每个单词:
docs <- tm_map(docs, content_transformer(gsub), pattern = "colect|colleci|collectin|collectiong|collectng|colllect|", replacement = "collect")
Run Code Online (Sandbox Code Playgroud)
仅供参考,当我只替换一个单词时,我使用的是语法(注意fixed = TRUE):
docs <- tm_map(docs, content_transformer(gsub), pattern = "charcola", replacement = "charcoal", fixed=TRUE)
Run Code Online (Sandbox Code Playgroud)
单一替换和失败的是:
docs <- tm_map(docs, content_transformer(gsub), pattern = "dogmonkeycat", replacement = "dog monkey cat", fixed=TRUE)
Run Code Online (Sandbox Code Playgroud) 我有一个包含许多唯一单词的数据框。我想在R中创建代码,其中每个单词都将与所有单词进行比较,并创建一个矩阵,其中每个单词对的最大单词的长度。
为了更全面,请考虑以下示例。
test <- c("hello", "hi", "play", "kid")
Run Code Online (Sandbox Code Playgroud)
我想创建一个矩阵来比较测试中的每个单词,并给出最大单词的长度。
对于前面的示例,我想采用以下矩阵:
hello hi play kid
hello 5 5 5 5
hi 5 2 4 3
play 5 4 4 4
kid 5 3 4 3
Run Code Online (Sandbox Code Playgroud)
我如何在R中做到这一点?