我正在寻找一个文本语料库来运行一些试验全文风格的数据搜索.我可以下载的东西,或者生成它的系统.更随机的东西会更好,例如1,000,000维基百科文章,格式易于插入2列数据库(id,text).
任何想法或建议?
我是一个NTLK/Python初学者,并设法使用CategorizedPlaintextCorpusReader加载我自己的语料库,但我如何实际训练和使用数据进行文本分类?
>>> from nltk.corpus.reader import CategorizedPlaintextCorpusReader
>>> reader = CategorizedPlaintextCorpusReader('/ebs/category', r'.*\.txt', cat_pattern=r'(.*)\.txt')
>>> len(reader.categories())
234
Run Code Online (Sandbox Code Playgroud) 在nltk书中,有一个问题“使用state_union语料库阅读器来阅读国情咨文中的文本。计算每个文档中男人,女人和人的出现。时间?”
我以为我可以使用像state_union('1945-Truman.txt')。count('men')之类的函数,但是,在此州联合会中有60多个文本,我觉得必须有一个更简单的方法来查看这些单词的计数是每个单词的数量,而不是一遍又一遍地重复此功能。
我正在使用tm包来应用词干,我需要将结果数据转换为数据帧.可以在这里找到解决方案R tm package vcorpus:将语料库转换为数据帧时出错,但在我的情况下,我将语料库的内容作为:
[[2195]]
i was very impress
Run Code Online (Sandbox Code Playgroud)
代替
[[2195]]
"i was very impress"
Run Code Online (Sandbox Code Playgroud)
因此,如果我申请
data.frame(text=unlist(sapply(mycorpus, `[`, "content")), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
结果将是
<NA>.
Run Code Online (Sandbox Code Playgroud)
任何帮助深表感谢!
以下代码为例:
sentence <- c("a small thread was loose on the sandals, otherwise it looked good")
mycorpus <- Corpus(VectorSource(sentence))
mycorpus <- tm_map(mycorpus, stemDocument, language = "english")
inspect(mycorpus)
[[1]]
a small thread was loo on the sandals, otherwi it look good
data.frame(text=unlist(sapply(mycorpus, `[`, "content")), stringsAsFactors=FALSE)
text
1 <NA>
Run Code Online (Sandbox Code Playgroud) 我想使用Wordcloud功能在twitter数据上做云.我已经安装了twitter包并使用了api.之后我会做以下事情.
bigdata <- searchTwitter("#bigdata", n=20)
bigdata_list <- sapply(bigdata, function(x) x$getText())
bigdata_corpus <- Corpus(VectorSource(bigdata_list))
bigdata_corpus <- tm_map(bigdata_corpus, content_transformer(tolower), lazy=TRUE)
bigdata_corpus <- tm_map(bigdata_corpus, removePunctuation, lazy=TRUE)
bigdata_corpus <- tm_map(bigdata_corpus,
function(x)removeWords(x,stopwords()), lazy=TRUE)
wordcloud(bigdata_corpus)
Run Code Online (Sandbox Code Playgroud)
这会生成Wordcloud命令的错误消息:
Error in UseMethod("meta", x) :
no applicable method for 'meta' applied to an object of class "try-error"
In addition: Warning messages:
1: In mclapply(x$content[i], function(d) tm_reduce(d, x$lazy$maps)) :
all scheduled cores encountered errors in user code
2: In mclapply(unname(content(x)), termFreq, control) :
all scheduled cores encountered errors in user code …
Run Code Online (Sandbox Code Playgroud) 我正在进行一些文本挖掘(PCA,HC,K-Means),到目前为止,我已经成功地编写了一切.但是,我想解决一个小缺陷.
当我试图阻止我的语料库时,它不能正常工作,因为有不同的词语具有相同的基础,而这些词语没有以正确的方式识别.这些是我特别感兴趣的词(它是西班牙语,意思是"孩子"或相关):
niñera, niños, niñas, niña, niño
Run Code Online (Sandbox Code Playgroud)
但是当我运行代码时,我发现这些单词仍然是相同的,除了
niña, niño --> niñ
Run Code Online (Sandbox Code Playgroud)
但另一方保持不变,所以我最终只是为了niña/niño,而不是其他人.
这是我创建语料库的代码:
corp <- Corpus(DataframeSource(data.frame(x$service_name)))
docs <- tm_map(corp, removePunctuation)
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, tolower)
docs <- tm_map(docs, removeWords, stopwords("spanish"))
docs <- tm_map(docs, stemDocument, language = "spanish")
docs <- tm_map(docs, PlainTextDocument)
dtm <- DocumentTermMatrix(docs)
dtm
Run Code Online (Sandbox Code Playgroud)
我真的很感激一些建议!谢谢
我们可以使用以下方式下载所有nltk数据:
> import nltk
> nltk.download('all')
Run Code Online (Sandbox Code Playgroud)
或使用以下具体数据:
> nltk.download('punkt')
> nltk.download('maxent_treebank_pos_tagger')
Run Code Online (Sandbox Code Playgroud)
但我想下载除'corpara'文件之外的所有数据,例如所有数据 - 所有chunkers,grammers,model,stemmers,taggers,tokenizer等
没有Downloader用户界面有什么办法吗?就像是,
> nltk.download('all-taggers')
Run Code Online (Sandbox Code Playgroud) 可以下载 NLTK 语料库punkt
并wordnet
通过命令行:
python3 -m nltk.downloader punkt wordnet
Run Code Online (Sandbox Code Playgroud)
如何使用 下载 NLTKrequirements.txt
语料库pip install -r requirements.txt
?
例如,可以通过添加模型的 URL 来下载 spacy 模型requirements.txt
(pip install -r requirements.txt
例如https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz #egg=en_core_web_sm==2.0.0
中requirements.txt
)
我正在使用下面的代码并从 nltk 导入停用词
#from nltk.corpus import words as word_corp
from nltk.corpus import stopwords
nlp = spacy.load('en_core_web_sm')
phrase_matcher = PhraseMatcher(nlp.vocab)
en_words = nltk.corpus.words.words('en')
stop_words = stopwords.words('english')
Run Code Online (Sandbox Code Playgroud)
但错误就是AttributeError: 'getset_descriptor' object has no attribute 'setdefault' for ----> 3 nlp = spacy.load('en_core_web_sm')
这一行。