具有挑战性的缩略语正则表达式

时间:2017-10-15 02:45:17

标签: python regex abbreviation

对于我正在处理的项目,我想在第一次在文本中引入缩写词。

例如:

  

他在丹麦国家银行(DNB)工作。

     

(...)

     

DNB是一个很好的雇主。

应将DNB与丹麦国家银行的缩写相匹配。但并非所有缩写都是大写字母:

  

2012年,马戏团工人的法律平等待遇(此后:LetCW)被引入。

哪个应该返回提取物LetCW。这样做的最佳方法是什么?我正在考虑在此之后删除""然后在括号前面加上相同数量的单词,因为可疑缩写中有字母。

编辑: 另一个有趣的例子是单个词的缩写,即:

  

缩写(缩写)

  

缩写(Abvn)

1 个答案:

答案 0 :(得分:1)

这是一个NLP问题,但它并没有给我留下真正的正则表达式问题 - 这似乎不是最合适的工具。

您似乎想要解析令牌流并识别可能是缩写的有前途的令牌。例如,它们可以用括号分隔或用逗号分隔。令人讨厌的是,一旦删除了停用词(“the”,“ie”,“after”之后),它们可能会出现在定义短语之前或之后。用于识别潜在缩写的一种启发式方法是区分大小写的匹配,显示英语词典中的非成员资格。

确定了潜在的缩写令牌后,您需要扫描其附近的邻居,看看您是否可以根据附近的单词进行解释,最好只使用他们的首字母。对于真正具有挑战性的数据集,您可以尝试解释DARPA backronyms。

要以不同的方向进行此操作,您可以尝试应用word2vec。这里将是phrase2vec,挑战在于可扩展地识别与潜在缩写标记具有非常小的余弦距离的多字短语。