从非结构化数据中提取重要实体



我正在处理一个NLP问题,在这个问题上我完全陷入了困境。我是新手,所以如果这个问题是愚蠢的,请原谅。我有一个完全没有结构的文本,比如说:;CCD_ 1";现在我必须提取

|name of person| country's name | amount spent and the currency | food items he ate | place of              
stay|

这方面的限制是,文本包含一些虚假信息,例如:食物b和c在特定国家找不到,因此不应提取我有一个嵌套的字典,看起来像这样:

{country_name: {place 1: {name of hotels:[hotel1, hotel2, hotel3....],
eatables: [food1, food2, food3, food4.....],
currency_accepted: [c1, c2, c3, c4.......],
}
}
} 

我想在非结构化文本中使用这个字典,这样我就可以解析数据并提取数据帧的单独列中相关的实体我见过基于NER的方法,但我想它需要对单词进行标记,而且我有大量的数据。

我尝试过基于正则表达式的模式匹配方法,但这并不能给出所有结果,此外,我还尝试过匹配列表中存储的所有实体,但这会导致提取许多虚假实体的问题,因此准确性非常重要

我正在寻找更多改进的基于解析的方法,如果有任何方法可以在该字典上训练某个模型,使其仅在非结构化文本中找到关键字时才查找嵌套字典的值。

在进行机器学习之前,您可以尝试使用fuzzywuzzy。我在工作中也遇到了类似的问题,通过调整比率属性可以实现高精度。因此,对于每个提取的实体,您必须通过fuzzywuzzy和您的字典来运行它。

针对问题

但这造成了提取的许多虚假实体的问题

我会实现一个过滤器:如果提取的&匹配的实体不在列表中,请将提取的实体排除在外,否则,继续执行逻辑。