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可以很容易地做到这一点。