2010-10-23 3 views
0

Я хотел бы получить точное предложение, если в этом предложении присутствует конкретное слово. Может ли кто-нибудь дать мне знать, как это сделать с помощью python. Я использовал concordance(), но он печатает только строки, в которых слово совпадает.извлечь предложение, используя python

ответ

1

Если у вас есть каждое предложение в строке, вы можете использовать find() для своего слова, и если найдено, верните предложение. В противном случае вы можете использовать регулярное выражение, что-то вроде этого

pattern = "\.?(?P<sentence>.*?good.*?)\." 
match = re.search(pattern, yourwholetext) 
if match != None: 
    sentence = match.group("sentence") 

Я нету испытал это, но что-то вдоль этих линий.

Мой тест:

import re 
text = "muffins are good, cookies are bad. sauce is awesome, veggies too. fmooo mfasss, fdssaaaa." 
pattern = "\.?(?P<sentence>.*?good.*?)\." 
match = re.search(pattern, text) 
if match != None: 
    print match.group("sentence") 
+0

Проверьте это! Это неверно. – pyfunc

+0

исправлено., Я просто пропустил? после первого \. – dutt

0

Датт сделал хорошую работу, отвечая на это. просто хотели бы добавить пару вещей

import re 

text = "go directly to jail. do not cross go. do not collect $200." 
pattern = "\.(?P<sentence>.*?(go).*?)\." 
match = re.search(pattern, text) 
if match != None: 
    sentence = match.group("sentence") 

очевидно, вам необходимо импортировать регулярки библиотеки (импорт повторно), прежде чем начать. вот демонтаж того, что на самом деле делает регулярное выражение (больше информации можно найти на Python re library page)

\. # looks for a period preceding sentence. 
(?P<sentence>...) # sets the regex captured to variable "sentence". 
.*? # selects all text (non-greedy) until the word "go". 

снова, ссылка на страницу библиотеки исх является ключевым фактором.

2

Просто быстрое напоминание: Нарушение предложения на самом деле довольно сложная вещь, есть исключения из правила периода, такого как «Mr.», или "Доктор" Также существует множество знаков препинания, заканчивающихся предложением. Но есть исключения из исключения (если следующее слово «Заглавное» и не является надлежащим существительным, тогда д-р может закончить предложение, например).

Если вы заинтересованы в этом (это естественный язык тему обработки) можно проверить:
на языке набор инструментов Природного (NLTK) punkt module.

+0

Спасибо @HonestAbe – Crisfole