NLP:如何使用python NLTK从给定文本中查找名称和数字

时间:2013-11-11 05:10:13

标签: python python-2.7 nlp nltk

我有不同的文字,我需要捕捉姓名和号码。

以下是我需要处理的一些示例文本:

  

1.根据35 U.S.C,第1-3,9-12和18号索赔被驳回。 103(a)对Olarig等人不具有专利权。 (美国专利No.5,944,809)   (“Olarig”)和Solomita(美国专利号7,581,052)。

     

2.根据35 U.S.C,第16条被驳回。图103(a)所示的本发明的另一个例子是,本发明等人未在US-2005/0013154上进行了专利   Takeuchi等人的US-2003/0189860,以及US6883060的进一步描述   Hayama,并进一步考虑到Ogle的US-2004/0088473。

我需要按照它们在文本中出现的顺序捕获姓名和号码。

对于1,列表应为:

list1 = [{'name':'Olarig et al','patent no':'5944809'},
         {'name':'Solomita','patent no':'7581052'}]

对于2,捕获列表应为:

list2 = [{'name':'Honda et al', 'patent no':'20050013154'},
         {'name':'Takeuchi et al', 'patent no':'6883060'},
         {'name':'Ogla' , 'patent no':'20040088473'}]

从文本中获得列表需要哪些步骤?

1 个答案:

答案 0 :(得分:3)

这是一个实体识别问题。 我可能会首先为你想要识别并从那里开始工作的每个实体制作单独的解析器。

例如:制作'专利'标识符,从您的示例中看起来您将必须识别 - 忽略大小写 - '专利号xxxxxxx'或'USxxxxxxx'以及可能更多格式。您需要为这些创建正则表达式,或者训练分类器来识别它们(更难但可能更准确)。我个人建议从每个实体的正则表达式解析器开始,然后继续测试直到你满意为止!