我有一些来自航空通信领域的短语,例如:“地铁塔,4达美探戈查利,请求爬升到350层,风向220”。
"metro tower" = Air traffic control tower name,
"four Delta Tango Charlie" = airplane call sign ,
"requset climb to flight level 350" = type of clearance request,
"350" = flight level
"wind 220" = wind info我需要分离并提取与上面提到的标记名相对应的这些值,以便在以后的处理中使用。根据我的研究,我认为这可以通过使用自定义命名实体识别类和规则来实现,但我不清楚这是否是最有效的方法,因为这将用于聊天应用程序,并且处理时间和响应时间必须非常快。请告诉我是否有任何其他算法或技术来做到这一点。
下一个问题是由数字和拼音字母(A=Alpha,B=Bravo,C=Charlie,P=papa等)组成的“四个三角探戈查利”部分。创建此字母表的术语字典并使用字典从原始文本中提取呼号的可能方法有哪些?
也请告诉我什么算法可以用来解决我的问题
发布于 2018-12-30 18:30:04
经典的命名实体识别(NER)通常是统计的(CRF,神经网络),并在大型标注语料库上进行训练。如果你没有这样的语料库,你就不能走这条路。(而且,它们大多不是命名实体,而是简单的实体)。
相反,我会简单地搜索列表中的项目。有了你提到的参数,你可以使用暴力,但既然你提到了这是一个赋值,你可能应该使用更聪明的东西。
您可能希望将所有要搜索的项编译为一个有限状态自动机(请参阅Aho Corasick algorithm)。状态可以是令牌或简单的字母。
音标的标准化依赖于歧义(查利总是C吗?或者在某些上下文中它可能是字面意义上的查利)。它可以作为预处理步骤、后处理步骤来完成,或者可以编译成搜索算法(使用换能器而不是自动机)。
您可能还想使用令牌regexes in Stanford NLP。或者是Apache Lucene。
https://stackoverflow.com/questions/53967344
复制相似问题