Python 缩写的挑战性正则表达式
对于我正在从事的一个项目,我想在第一次在文本中介绍缩写词时识别它们 例如: 他在丹麦国家银行(DNB)工作 (……) DNB是一个伟大的雇主 应匹配DNB作为丹麦国家银行的缩写。但并非所有缩写都是大写: 2012年,引入了《马戏团工作人员平等待遇法》(此后为LetCW) 它应该返回extract LetCW。最好的方法是什么?我目前正在考虑删除“在此之后”,然后在括号前加上与可疑缩写中字母数量相同的单词 编辑: 另一个有趣的例子是单个单词的缩写,即: 缩写(缩写) 或 缩写(Abvn)Python 缩写的挑战性正则表达式,python,regex,abbreviation,Python,Regex,Abbreviation,对于我正在从事的一个项目,我想在第一次在文本中介绍缩写词时识别它们 例如: 他在丹麦国家银行(DNB)工作 (……) DNB是一个伟大的雇主 应匹配DNB作为丹麦国家银行的缩写。但并非所有缩写都是大写: 2012年,引入了《马戏团工作人员平等待遇法》(此后为LetCW) 它应该返回extract LetCW。最好的方法是什么?我目前正在考虑删除“在此之后”,然后在括号前加上与可疑缩写中字母数量相同的单词 编辑: 另一个有趣的例子是单个单词的缩写,即: 缩写(缩写) 或 缩写(Abvn) 这是一个
这是一个NLP问题,但它并没有给我留下正则表达式问题的印象——这似乎不是最合适的工具 似乎您想要解析一个令牌流,并识别可能是缩写的有前途的令牌。例如,它们可以是括号分隔的或逗号分隔的。令人恼火的是,一旦停止词(“即”、“在此之后”)被删除,它们可能会出现在定义短语之前或之后。识别潜在缩略语的一种启发式方法是区分大小写的匹配,显示英语词典中的非成员 在确定了一个可能的缩写标记后,您需要扫描它的邻近区域,看看是否可以用附近的单词来解释它,最好只使用它们的首字母。对于真正具有挑战性的数据集,您可以尝试解释DARPA背景
要想从另一个方向理解这一点,您可以尝试应用word2vec。这里是phrase2vec,挑战是可伸缩地识别与潜在缩写标记的余弦距离非常小的多词短语。这些括号内是否存在其他非缩写文本?是,但在这种情况下,我不想匹配它。要做到完美的准确性通常是不可能的(不仅仅是正则表达式)。