尝试使用word_tokenize和send_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文件中读取数据。
最佳答案
在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']
关于python - 如何使用line_tokenize分隔新行或使用nltk分隔word_tokenize?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48611576/