首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PlainTextCorpusReader创建语料库并进行分析

使用PlainTextCorpusReader创建语料库并进行分析
EN

Stack Overflow用户
提问于 2019-08-07 13:31:07
回答 1查看 2.8K关注 0票数 2

我对python比较陌生,我对如何使用NLTK的PlainTextCorpusReader方面创建一个语料库感兴趣。我把所有的文件都进口进去了。但是,当我运行代码来标记整个语料库中的文本时,它会返回一个错误。如果这个问题是重复的,我很抱歉,但我想对此有所了解。

这是导入文档的代码。我的电脑上有一堆与2016年DNC相关的文档(为了重现性,请从https://github.com/lin-jennifer/2016NCtranscripts获取部分或全部文本文件)

代码语言:javascript
复制
import os
import nltk
from nltk.corpus import PlaintextCorpusReader
from nltk.corpus import stopwords

corpus_root = '/Users/JenniferLin/Desktop/Data/DNCtexts'
DNClist = PlaintextCorpusReader(corpus_root, '.*')

DNClist.fileids()

#Print the words of one of the texts to make sure everything is loaded
DNClist.words('dnc.giffords.txt')

type(DNClist)

str(DNClist)

当我对文本进行标记时,下面是代码和输出

代码:

代码语言:javascript
复制
from nltk.tokenize import sent_tokenize, word_tokenize

DNCtokens = sent_tokenize(DNClist)

输出:TypeError: expected string or bytes-like object

即使我做了类似于DNClist.paras()的事情,我也会得到一个读取UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9b in position 7: invalid start byte的错误

我想知道在如何加载文档或标记过程中是否存在错误。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 16:33:19

看起来,您要做的是将文件夹中的纯文本文档标记化。如果这是您想要的,您可以通过向PlainTextCorpusReader请求令牌来实现这一点,而不是试图将句子标记器传递给PlainTextCorpusReader。所以而不是

DNCtokens = sent_tokenize(DNClist)

请考虑

DNCtokens = DNClist.sents()得到句子,DNCtokens = DNClist.paras()得到段落。

阅读器的源代码显示它保存了一个单词标记器和一个句子标记器,并将调用它们来执行您想要的标记化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57395685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档