使用NLP识别文本

时间:2017-06-20 18:20:59

标签: python nlp nltk opennlp

我正在尝试使用一些NLP技术在下面的文本行中找到课程。

from nltk import word_tokenize, pos_tag, ne_chunk
sentence = "SDGI is offering courses like Electronics,Mechatronics, Physics,Mechanical Engineering"    
print ne_chunk(pos_tag(word_tokenize(sentence)))

输出这个是

(S
  (ORGANIZATION SDGI/NNP)
  is/VBZ
  offering/VBG
  courses/NNS
  like/IN
  Electronics/NNS
  ,/,
  Mechatronics/NNS
  ,/,
  (PERSON Physics/NNPS)
  ,/,
  (PERSON Mechanical/NNP Engineering/NNP))

有什么方法可以从这一行中提取课程吗?

在我的真实项目中,我将获得许多文档,我需要从中获取课程名称。

感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

  1. 从给定文本中提取所有名词。
  2. 创建一个单词包功能集,并为带有标记数据的课程训练该组。
  3. 课程似乎主要在逗号(,)之前或之后。二元组或三元组方法可以给出准确的结果。

答案 1 :(得分:0)

这可能过于简单了,但是,如果现有的课程名称数量有限,那么创建一个大型查找表可能会更容易,将输入标记化并尝试查找每个单词。会有一些边缘情况,但我不确定你需要采用ML / NLP方法解决这个问题。