尝试使用word_tokenize和sent_tokenize标记带有新行的段落,但它无法识别新行。
尝试通过将其拆分到新行中来将其分成段落,但仍然不起作用。
from nltk import sent_tokenize, word_tokenize, pos_tag
para="the new line \n new char"
sent=sent_tokenize(para)
print(sent)输出:
['the new line \n new char']如果在python中以字符串格式指定数据,但在从docx文件中提取数据时失败,则它可以工作
对于python中的数据,我使用
from nltk import sent_tokenize, word_tokenize, pos_tag
para="the new line \n new char"
paragraphs = [p for p in para.split('\n') if p]
par3=[sent_tokenize(par) for par in paragraphs]
print(par3)输出:
[['the new line'], [' new char']]PS:我正在从一个使用UTF-8编码的doc文件中读取数据。
发布于 2018-02-05 09:35:05
在NLTK中,sent_tokenize是一种统计算法。它是来自Kiss and Strunk (2006)的Punkt算法的实现
word_tokenize是从原始Treebank word tokenizer from the Penn TreeBank project扩展而来的基于规则(正则表达式搜索和替换)的算法
要使用\n符号分隔字符串,只需执行一个str.split('\n'),例如
>>> s = 'abc\ndef'
>>> print(s)
abc
def
>>> s.split('\n')
['abc', 'def']https://stackoverflow.com/questions/48611576
复制相似问题