Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-通读文本文档并用特定单词提取句子_Regex_Python 3.x_Nlp - Fatal编程技术网

Regex 正则表达式-通读文本文档并用特定单词提取句子

Regex 正则表达式-通读文本文档并用特定单词提取句子,regex,python-3.x,nlp,Regex,Python 3.x,Nlp,我有一系列大型文本文档。我需要通读它们,如果出现一个特定的单词,则提取整个句子 因此,如果我正在搜索单词wobble,文档中的一个句子是Weebles-wobble,但它们没有掉下来,我想提取这个句子 最有效的方法是什么 我可以想出两种方法: 搜索文档中的单词,然后提取特定的句子;或 反复阅读文档中的每个句子。检查每个句子中的单词。如果句子中有单词,则提取句子 我认为1在计算效率上比2高。但不确定语法是什么 有没有其他我没有考虑的方法 任何关于效率和语法的帮助都值得赞赏。您首先需要从文本文档中获

我有一系列大型文本文档。我需要通读它们,如果出现一个特定的单词,则提取整个句子

因此,如果我正在搜索单词
wobble
,文档中的一个句子是
Weebles-wobble,但它们没有掉下来,我想提取这个句子

最有效的方法是什么

我可以想出两种方法:

  • 搜索文档中的单词,然后提取特定的句子;或

  • 反复阅读文档中的每个句子。检查每个句子中的单词。如果句子中有单词,则提取句子

  • 我认为1在计算效率上比2高。但不确定语法是什么

    有没有其他我没有考虑的方法


    任何关于效率和语法的帮助都值得赞赏。

    您首先需要从文本文档中获得正确的句子。最好的方法是使用nltk.data标记器。首先确保您已正确安装python nltk库

    import nltk.data
    tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')
    txt = open("txt_file.txt")
    data = txt.read()
    all_sentences = tokenizer.tokenize(data)
    required_sentences = []
    for each_sentence in all_sentences:
        if 'wobble' in each_sentence:
            required_sentences.append(each_sentence)
    print(required_sentences)
    

    你追求的是精度还是效率(=速度)?使用方法#2,它更精确。我在其他地方看到了以下使用列表理解的响应:>>>>txt=“我喜欢吃苹果。我也是。我们去买一些苹果。”>>>>[句子+”.对于txt.split(')中的句子,如果句子中的“苹果”['我喜欢吃苹果',“我们去买一些苹果吧。”]我认为这在计算效率上不如nltk,但比标准的“for”循环更有效?是的,我考虑的是一个大型文本文档,在这里你不能很容易地指出句子完成的地方,你需要一些技巧来破译句子nltk可以很容易地做到这一点。