nlp:备用拼写识别

时间:2013-05-18 01:39:56

标签: nlp

非常感谢编辑我的问题标题和标签的帮助!

有时,我的“对话”语料库中的一位参与者会使用昵称(通常是缩写或拼写错误)来引用另一位参与者,但此后我只会说“昵称”。假设我愿意手动告诉我的软件我是否认为各种可能的昵称实际上都是昵称,但是我希望软件能够找到识别人员的句柄与潜在昵称之间可能匹配的列表。我该怎么做呢?

关于我和我的语料库的背景:我没有做自然语言处理的经验,但我是R的一名称职的数据分析师。我的数据由70个团队制作,每个团队预测在一段时间内发生100个不同事件的可能性未来。结果是我有70 x 100 = 7000个文本文件,其中包含参与者所做的预测流以及他们在预测中包含的评论。我将在下面粘贴其中一个文本文件的短片,这与马里政府是否会与MNLA进行谈判有关:

  

02/12/2013 20:10:past_returns回答是:(50%)

     

当我放入以前的时候,我没有做过很多研究   占位符......由于DougL的预测,我正在大肆宣传

     

02/12/2013 19:31:DougL回答是:(60%)

     如果MNLA放弃领土要求,弱势总统特劳雷想要谈判。   马里的军队可能不想谈判。法国想要谈判。 MNLA建议   它只需要自治。但在7周内?

     

02/12/2013 10:59:past_returns回答否:(75%)

     

占位符预测......   http://www.irinnews.org/Report/97456/What-s-the-way-forward-for-Mali

我最初的想法:显然我可以从提供我想要匹配的名字开始......在上面的例子中,他们将是past_returns和DougL(虽然上面没有使用昵称)。我不认为让计算机猜到轻微的拼写错误是困难的(虽然我个人不知道从哪里开始)。我可以想象可以使用其他技巧,比如假设一个字符串更可能是一个昵称,如果它被一个团队使用得多,而不是其他团队。一个昵称更可能是指最近发言的人,而不是很久以前发言的人,或者根本不谈论这个问题。并且它们应该以类似于语料库中通常使用全名/屏幕名称的方式在句子中使用。但我很想知道简单的方法,以及那些试图考虑更复杂技术的方法。

1 个答案:

答案 0 :(得分:1)

这可能会变得像你想要的那样复杂。从半语言方面来看,研究主题包括Levenshtein Distance(用于检测已知名称/昵称的轻微拼写错误)和Named Entity Recognition(用于首先检测姓名/昵称的任务)。实际上,NER值得一读,但现有的系统可能对你的论坛句柄和昵称没什么帮助。

首先想到的是,您可以针对英语词典(可能是从维基词典或类似WordNet编译的数据集)运行语料库的标记化版本,以查找名称候选词,然后通过一些启发式过滤它们(它们是否以与已知全名相同的字母开头?它们与已知名称的Levenshtein距离是否较低?它们是否使用过多次?)。

您还可以针对非单词令牌尝试一些聚类或监督ML算法。这可能会揭示一些非“单词”标记,这些标记通常出现在与给定用户名相同的线程中;再次,启发式可以帮助排除一些误报。

祝你好运;听起来像一个有趣的问题 - 希望我至少提到过一件你没想过的事情。