如何从R(报纸文章)中的文本中提取ngrams

如何从R(报纸文章)中的文本中提取ngrams,r,quanteda,R,Quanteda,我是R新手,使用R中的包创建了一个报纸文章语料库。由此,我创建了一个dfm: 我试图提取bigrams,例如气候变化、全球变暖,但当我键入以下内容时,不断收到错误消息,表示未使用ngrams参数 dfmatrix <- dfm(corpus, remove = stopwords("english"),stem = TRUE, remove_punct=TRUE, remove_numbers = FALSE, ngrams = 2) 我已经安装了tokenizer、tidyverse、

我是R新手,使用R中的包创建了一个报纸文章语料库。由此,我创建了一个dfm:

我试图提取bigrams,例如气候变化、全球变暖,但当我键入以下内容时,不断收到错误消息,表示未使用ngrams参数

dfmatrix <- dfm(corpus, remove = stopwords("english"),stem = TRUE, remove_punct=TRUE, remove_numbers = FALSE, ngrams = 2)
我已经安装了tokenizer、tidyverse、dplyr、ngram、readtext、quanteda和stm库。 下面是我的语料库截图。 Doc_iD是文章的标题。我需要从“文本”列中提取双字符

我需要先从语料库中提取ngrams,还是可以从dfm中提取?我是否遗漏了一段允许我提取bigram的代码

从帮助dfm中编辑此示例可能有用

量子图书馆 你说你已经在创建语料库了? 上面写着“数据”\u语料库”\u Inagaral把你的语料库名称 参议院说气候变化在哪里 “温室”说全球变暖发生在哪里 tokensdata_corpus_成立%>% 代币\u ngramsn=2%>% dfmstem=TRUE,select=C参议院,众议院 >文档特征矩阵:58个文档,2个特征89.7%稀疏,4个文档变量。 >特征 >在家里做医生 >1789年华盛顿1月2日 >1793年华盛顿0 >1797年0月0日 >1801杰斐逊0 >1805杰斐逊0 >1809麦迪逊0 >[已到达max_ndoc…又有52个文档]
我认为你需要直接从语料库中创建ngram。这是一个改编自quanteda的示例:


严格地说,如果你想要什么,那么你可以使用代币来形成它们。但听起来你们更喜欢多词表达,而不是等。为此,我会使用textstat_搭配。您将希望在代币上执行此操作,而不是在dfm上执行此操作-dfm已将您的代币拆分为文字包功能,而ngrams或MWE无法再从中形成

下面是一个来自内置就职语料库的示例。它会删除停止字,但会留下一个填充,以便在删除停止字之前不相邻的字在删除后不会显示为相邻

量子图书馆 软件包版本:2.0.1 toks% 标记\u removestopwordsen,padding=TRUE
嗨,谢谢你的回答!我不认为这是实现我想要的,但我会玩它,谢谢!嗨,谢谢你的回答!有没有一种方法可以避免在其中包含停止词?是的,像这样:toks_nostop一个注意:如果你想删除令牌,你可能想使用padding=T选项,这样你就可以为删除的令牌保留空槽。否则,将连接两个中间有已移除标记的标记。e、 g.总统是对的->总统是对的Hi Ken,我当然会尊重你对你的包裹的专业知识LOL,但我认为他试图在他的所有文件中搜索两个特定的大人物。我想嗨,Ken和Chuck,我目前还处于熟悉数据和如何指定某些内容的早期阶段-因此,如果我能让它们发挥作用,你的两种方法都会对我非常有帮助,谢谢!我想一开始我想按照Ken的建议做,但后来我可能需要指定具体的bigram。我会尝试这两种方法,看看我能做什么。谢谢你的帮助!
dfmatrix <- dfm(corpus, remove = stopwords("english"),stem = TRUE, remove_punct=TRUE, remove_numbers = FALSE, ngrams = 2)
library(quanteda)
corp <- corpus(data_corpus_inaugural)
toks <- tokens(corp)

tokens_ngrams(toks, n = 2)

Tokens consisting of 58 documents and 4 docvars.
1789-Washington :
 [1] "Fellow-Citizens_of" "of_the"             "the_Senate"         "Senate_and"         "and_of"             "of_the"             "the_House"         
 [8] "House_of"           "of_Representatives" "Representatives_:"  ":_Among"            "Among_the"         
[ ... and 1,524 more ]