我想在一堆学术论文中识别主要的 n-gram,包括带有嵌套停用词的 n-gram,但不是带有前导或尾随停用词的 n-gram。
我有大约 100 个 pdf 文件。我通过 Adobe 批处理命令将它们转换为纯文本文件,并将它们收集在一个目录中。从那里我使用 R。(这是代码的拼凑,因为我刚刚开始使用文本挖掘。)
我的代码:
library(tm)
# Make path for sub-dir which contains corpus files
path <- file.path(getwd(), "txt")
# Load corpus files
docs <- Corpus(DirSource(path), readerControl=list(reader=readPlain, language="en"))
#Cleaning
docs <- tm_map(docs, tolower)
docs <- tm_map(docs, stripWhitespace)
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, removePunctuation)
# Merge corpus (Corpus class to character vector)
txt <- c(docs, recursive=T)
# Find trigrams (but I might look for other ngrams as well)
library(quanteda)
myDfm <- dfm(txt, ngrams = 3)
# Remove sparse features
myDfm <- dfm_trim(myDfm, min_count = 5)
# Display top features
topfeatures(myDfm)
# as_well_as of_the_ecosystem in_order_to a_business_ecosystem the_business_ecosystem strategic_management_journal
#603 543 458 431 431 359
#in_the_ecosystem academy_of_management the_role_of the_number_of
#336 311 289 276
例如,在此处提供的顶级 ngrams 示例中,我想保留“管理学院”,而不是“以及”或“the_role_of”。我希望代码适用于任何 n-gram(最好包括少于 3-gram,尽管我知道在这种情况下首先删除停用词更简单)。