Python-使用NLTK创建新的语料库
我认为标题的答案通常是去阅读文档,但是我浏览了NLTK书,但没有给出答案。我是Python的新手。
我有很多.txt
文件,我希望能够使用NLTK为语料库提供的语料库功能nltk_data
。
我已经尝试过,PlaintextCorpusReader
但是我无法超越:
>>>import nltk>>>from nltk.corpus import PlaintextCorpusReader
>>>corpus_root = './'
>>>newcorpus = PlaintextCorpusReader(corpus_root, '.*')
>>>newcorpus.words()
如何newcorpus
使用punkt
分割句子?我尝试使用punkt
函数,但punkt
函数无法读取PlaintextCorpusReader
类?
你还可以引导我介绍如何将分段数据写入文本文件吗?
回答:
我认为PlaintextCorpusReader
,至少在你的输入语言是英语的情况下,已经使用punkt标记器对输入进行了细分。
PlainTextCorpusReader
的构造函数
def __init__(self, root, fileids, word_tokenizer=WordPunctTokenizer(),
sent_tokenizer=nltk.data.LazyLoader(
'tokenizers/punkt/english.pickle'),
para_block_reader=read_blankline_block,
encoding='utf8'):
你可以向读者传递一个单词和句子标记器,但是后者的默认值已经是nltk.data.LazyLoader('tokenizers/punkt/english.pickle')
。
对于单个字符串,将按以下方式使用标记器(此处说明,有关punkt标记器,请参见第5节)。
>>> import nltk.data>>> text = """
... Punkt knows that the periods in Mr. Smith and Johann S. Bach
... do not mark sentence boundaries. And sometimes sentences
... can start with non-capitalized words. i is a good variable
... name.
... """
>>> tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
>>> tokenizer.tokenize(text.strip())
以上是 Python-使用NLTK创建新的语料库 的全部内容, 来源链接: utcz.com/qa/433801.html