gpt4 book ai didi

python - 使用 NLTK 在 Python 中的文件的特定区域中使用 sent_tokenize?

转载 作者:行者123 更新时间:2023-12-01 05:52:18 32 4
gpt4 key购买 nike

我有一个包含数千个句子的文件,我想找到包含特定字符/单词的句子。

最初,我对整个文件进行标记(使用 sent_tokenize),然后迭代句子来查找单词。然而,这太慢了。既然我可以快速找到单词的索引,我可以利用它来发挥我的优势吗?有没有办法只标记单词周围的区域(即找出哪个句子包含单词)?

谢谢。

编辑:我使用 Python 并使用 NLTK 库。

最佳答案

您使用什么平台?在unix/linux/macOS/cygwin上,您可以执行以下操作:

sed 's/[\.\?\!]/\n/' < myfile | grep 'myword'

它将仅显示包含您的单词的行(并且 sed 会将非常粗略的标记化为句子)。如果您想要某种特定语言的解决方案,您应该说出您正在使用的语言!

Python 编辑:

以下内容将起作用——它仅在您的单词有正则表达式匹配时才调用标记化(这是一个非常快的操作)。这意味着您只能标记包含所需单词的行:

import re
import os.path

myword = 'using'
fname = os.path.abspath('path/to/my/file')

try:
f = open(fname)

matching_lines = list(l for l in f if re.search(r'\b'+myword+r'\b', l))
for match in matching_lines:
#do something with matching lines
sents = sent_tokenize(match)
except IOError:
print "Can't open file "+fname
finally:
f.close()

关于python - 使用 NLTK 在 Python 中的文件的特定区域中使用 sent_tokenize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735815/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com