我意识到这是一个广泛的话题,但是我正在寻找一个很好的入门手册,以解析文本中的含义,最好是在Python中。例如,如果用户发表博客帖子,例如:

“曼尼·拉米雷斯(Manny Ramirez)今天在对阵休斯顿太空人队的比赛中返回道奇队”,

从句子中提取名词的轻巧/简便方法是什么?首先,我想将其限制为专有名词,但我不希望仅限于此(我也不想依靠一个简单的正则表达式来假定标题封顶是专有名词)。

使这个问题更糟的是,我不是在问我应该做些什么?我是否需要现有单词的语料库才能上手?我需要了解哪些词法分析知识才能完成这项工作?我确实遇到过有关该主题的one other question,现在正在挖掘这些资源。

最佳答案

使用NLTK,尤其是chapter 7 on Information Extraction.

您说您想提取含义,并且有用于语义分析的模块,但是我认为IE就是您所需要的-老实说,NLP计算机目前只能处理的领域之一。

请参阅“命名实体识别”子主题的第7.5和7.6节(将Manny Ramerez作为一个人,Dodgers作为一个运动组织,而Houston Astros作为另一个运动组织,或者适合您的领域的子集)和关系提取。一旦安装了NLTK,便可以插入一个NER分块器。从他们的示例中,提取一个地缘政治实体(GPE)和一个人:

>>> sent = nltk.corpus.treebank.tagged_sents()[22]
>>> print nltk.ne_chunk(sent)
(S
  The/DT
  (GPE U.S./NNP)
  is/VBZ
  one/CD
  ...
  according/VBG
  to/TO
  (PERSON Brooke/NNP T./NNP Mossman/NNP)
  ...)

请注意,您仍将需要了解标记化和标记(如前几章所述),以使这些IE任务的文本格式正确。

09-25 18:03