nltk如何给出多个分隔的句子

Posted

技术标签:

【中文标题】nltk如何给出多个分隔的句子【英文标题】:nltk how to give multiple separated sentences 【发布时间】:2019-03-07 11:40:48 【问题描述】:

我有英文句子列表(每个句子都是一个列表),我想获取 ngrams。 例如:

sentences = [['this', 'is', 'sentence', 'one'], ['hello','again']]

为了运行

nltk.utils.ngram

我需要将列表扁平化为:

sentences = ['this','is','sentence','one','hello','again']

但是我在

中得到了一个错误的bgram

('一','你好')

。 最好的处理方法是什么?

谢谢!

【问题讨论】:

【参考方案1】:

试试这个:

from itertools import chain

sentences = list(chain(*sentences))

chain 返回一个链对象,其.__next__() 方法从第一个可迭代对象返回元素,直到它用完,然后从下一个可迭代对象返回元素 可迭代,直到所有可迭代对象都用完为止。

或者你可以这样做:

 sentences = [i for s in sentences for i in s]

【讨论】:

实际需要的链(*句子),效果很好,谢谢【参考方案2】:

你也可以使用列表推导

f = []
[f.extend(_l) for _l in sentences]

f = ['this', 'is', 'sentence', 'one', 'hello', 'again']

【讨论】:

以上是关于nltk如何给出多个分隔的句子的主要内容,如果未能解决你的问题,请参考以下文章

如何标记 NLTK 中的字符串句子?

如何用 Python 中的 NLTK 对中文进行分析和处理

如何为 NLTK 中的歧义句子生成多个解析树?

用单个句号替换多个句号

如何使用 NLTK 分词器去除标点符号?

NLTK 将标记化的句子转换为同义词集格式