python - 使用Python提取包含单词的句子...以及它周围的句子?

标签 python regex nlp nltk text-segmentation

在提取包含单词的特定句子(如 extract a sentence using pythonPython extract sentence containing word )时有很多问题,我有足够的 NLTK 和 SciPy 初学者经验,可以自己完成.

但是,我在尝试提取包含单词的句子以及目标句子前后的句子时遇到了困难。

例如:

“前几天我走路去学校,突然下起了雨。我伸手去拿伞,但我意识到我把它忘在家里了。我能做什么?我立即跑向最近的树。但是然后我意识到我不能一直尝试没有叶子的树。”

在此示例中,目标词是“可以”。如果我想提取目标句子(我能做什么?)以及前后句子(我伸手去拿雨伞,但我意识到我把它忘在家里了。 我立即跑向最近的树。),什么是好的方法?

假设我将每个段落分割成自己的文本...

for paragraph in document:
    do something

...有没有合适的方法来解决这个问题?我有大约 10,000 个段落,目标词周围有不同数量的句子(出现在每个段落中)。

最佳答案

像这样的东西怎么样?

import nltk.data
tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
for paragraph in document:
    paragraph_sentence_list = tokenizer.tokenize(paragraph)
    for line in xrange(0,len(paragraph_sentence_list)):
        if 'could' in paragraph_sentence_list[line]:

            print(paragraph_sentence_list[line])

            try:
                print(paragraph_sentence_list[line-1])
            except IndexError as e:
                print('Edge of paragraph. Beginning.')
                pass

            try:
                print(paragraph_sentence_list[line+1])
            except IndexError as e:
                print('Edge of paragraph. End.')
                pass

这样做是将段落分成句子列表。

遍历句子测试“could”是否在句子中。如果是,则打印上一个索引 [line-1]、当前索引 [line] 和下一个索引 [line+1]

关于python - 使用Python提取包含单词的句子...以及它周围的句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23799001/

相关文章:

python - 如何在 PySpark 中获得不同的字典 RDD?

python删除以 '\u...'开头的单词

python - 带有 Jupyter Notebook 的 Textacy : How to suppress multiple error warnings?

python - 如果文本文件引用不存在的文件,则删除它们

python - 属性错误 : 'module' object has no attribute 'new'

python - 在 matplotlib 中绘制给定 y 范围内的垂直线

regex - 谷歌表格: Parse date from text

javascript - 为什么这个 javascript 验证不起作用?

algorithm - 计算上下文相关的文本相关性

python - 无法保存模型架构(bilstm+attention)