Поиск ключевого слова в документе в Python - PullRequest
2 голосов
/ 30 июня 2011

Я пытаюсь написать скрипт на python, чтобы он мог искать ключевое слово в документе и извлекать все предложение, где находится ключевое слово.Из моих исследований я узнал, что можно использовать acora, но все же нашел, что он неудачен.

Ответы [ 4 ]

2 голосов
/ 30 июня 2011
>>> text = """Hello, this is the first sentence. This is the second. 
And this may or may not be the third. Am I right? No? lol..."""

>>> import re
>>> s = re.split(r'[.?!:]+', text)
>>> def search(word, sentences):
       return [i for i in sentences if re.search(r'\b%s\b' % word, i)]

>>> search('is', s)
['Hello, this is the first sentence', ' This is the second']
0 голосов
/ 30 июня 2011

используйте команды grep или egrep с подпроцессным модулем python, это может вам помочь.

например:

from subprocess import Popen, PIPE

stdout = Popen("grep 'word1' document.txt", shell=True, stdout=PIPE).stdout
#to search 2 different words: stdout = Popen("egrep 'word1|word2' document.txt",       
#shell=True, #stdout=PIPE).stdout
data = stdout.read()
data.split('\n')
0 голосов
/ 30 июня 2011

У меня нет особого опыта в этом, но вы, возможно, ищете nltk.

Попробуйте this ;используйте span_tokenize и найдите, на какой интервал попадает индекс вашего слова, затем посмотрите на это предложение.

0 голосов
/ 30 июня 2011

Вот как вы можете просто сделать это в оболочке.Вы должны написать это в сценарии самостоятельно.

>>> text = '''this is sentence 1. and that is sentence
              2. and sometimes sentences are good.
              when that's sentence 4, there's a good reason. and that's 
              sentence 5.'''
>>> for line in text.split('.'):
...     if 'and' in line:
...         print line
... 
 and that is sentence 2
 and sometimes sentences are good
 and that's sentence 5

Здесь я разделил text на .split('.') и повторил, затем управлял словом and и, если он содержит, напечатал его.

Вы также должны учитывать, что это с учетом регистра .Вы должны учитывать многие вещи в своем решении, например, вещи, заканчивающиеся на ! и ?, также являются предложениями (но иногда это не так)

Это предложение (ха?) ИлиВы думаете (!) так?

будет разделен на

  • Это предложение (ха
  • ) или вы думаете (
  • ) так
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...