我有一系列账单和发票,所以文中没有上下文(我的意思是他们不讲故事)。 我想从这些账单中提取人名。 我尝试过OpenNLP但是训练模型的质量并不好,因为我没有上下文。 所以第一个问题是:我可以训练模型只包含没有上下文的人名吗?如果可能的话,你可以给我一篇关于我如何建立这个新模型的好文章(我读到的大部分文章没有解释我应该为建立新模型所采取的步骤)。
我的数据库名称超过100,000个人名(名字,姓氏),所以如果NER系统在我的情况下不起作用(因为没有上下文),那么搜索这些名称的最佳方法是什么?候选人(我的意思是用所有其他姓氏搜索每个名字?)
感谢。
答案 0 :(得分:3)
关于" context",我猜你的意思是你没有完整的句子,即没有上一个/下一个令牌,在这种情况下你会面临非常标准的NER。我不知道这个特定问题的可用软件或培训数据,如果您发现没有,您将不得不为培训和/或评估目的建立自己的语料库。
您的名称数据库可能会有很大帮助,具体取决于数据库中实际存在的帐单名称的比例。您也可能不得不依赖于名称的字符级形态,作为模式(参见[1]中的模式)。一旦你有一个训练集的功能(存在于数据库,形态,法案的其他信息)和解决方案(注释账单的实际名称),使用标准机器学习作为SVM将是非常简单的(如果你不熟悉这一点,只是问)。
其他一些建议:
[1]命名实体提取的排名算法:提升和投票的感知器(Michael Collins,2002)
答案 1 :(得分:2)
我从一些正则表达式开始,然后可能使用基于字典的方法(即,大名单)来扩充它。
无论你做什么,它都不会是完美的,所以一定要牢记这一点。