2011-12-28 3 views
2

Я хотел бы получить некоторые данные из текстового файла. Я решил сделать это, используя Natural Language Toolkit, но я открыт для предложений, если есть лучший способ сделать это.Извлечение определенной информации из текста

Вот пример:

Мне нужен рейс из Нью-Йорк Нью-Йорка в Сан-Франциско CA.

Из этого текста, я хотел бы получить город и страну происхождения и назначения.

Вот то, что я до сих пор:

import nltk 
from nltk.text import * 
from nltk.corpus import PlaintextCorpusReader 

def readfiles():  
    corpus_root = 'C:\prototype\emails' 
    w = PlaintextCorpusReader(corpus_root, '.*') 
    t = Text(w.words()) 
    print "--- to ----" 
    print t.concordance("to") 

    print "--- from ----" 
    print t.concordance("from") 

Я могу читать текст из некоторых входных сигналов (файл в моем случае), а затем использовать concordance method найти все обычаи этого. Я хочу извлечь город, информацию о состоянии, которая появляется после «до» и «от».

Вопрос - это лучший способ взглянуть на текст, который после экземпляров 'to' и 'from'?

+0

Выделение таких мест из текста называется «Именованное распознавание сущностей». NLTK может это сделать, хотя вам может понадобиться адаптировать свою версию на основе географического справочника (возможно, GeoNames.org работает с данными). – winwaed

ответ

1

Возможно, вам лучше читать файл в строках?
Тогда как-то просто, как:

cityState = dataAfterTo.split(",") 
city = cityState[0] 
state = cityState[1].split()[0] 

Если вы не имеете дела с пользовательским контентом, конечно.

+0

Да, пользователь создал. Таким образом, может быть или не быть «,» разделяющий город и государство. Я надеюсь найти более элегантное решение, использующее язык или библиотеку python. –

Смежные вопросы