python - 从文本中提取特定信息

标签 python nltk

我想从文本文件中获取一些数据。我决定使用 Natural Language Toolkit 来做到这一点,但如果有更好的方法,我愿意接受建议。

这是一个例子:

I need a flight from New York NY to San Francisco 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”之后的城市、州信息。

问题是查看“to”和“from”之后的文本的最佳方式是什么?

最佳答案

也许你最好逐行阅读文件?
然后是一些简单的事情:

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

当然,除非您要处理用户生成的内容。

关于python - 从文本中提取特定信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8657670/

相关文章:

python - Django 序列化器 : why does self. fields.pop ('field_name' )工作吗?

使用 NLTK 的 Python 在 sent_tokenize 和 word_tokenize 处显示错误

Python NLTK : parse sentence using conjoint structure, 进入无限递归

java - 无法在 .\stanford-corenlp-4.0.0 找到 stanford-parser\.jar jar 文件

python - 如何在 PyQt5 QLabel(固定大小)中增加/减小字体大小?

python - 在下面的代码中解释打印策略

python - 简单的Python类继承问题

python - 如何找到 Python 生成的进程的名称?

python - 使用 Wordnet Synset 的定义方法未获得所需的输出

python - nltk lemmatizer 不知道如何处理 Americans 这个词