Unicode 使用马尔可夫模型将所有CAP转换为混合情况及相关问题

Unicode 使用马尔可夫模型将所有CAP转换为混合情况及相关问题,unicode,nlp,ambiguity,n-gram,markov-models,Unicode,Nlp,Ambiguity,N Gram,Markov Models,我一直在考虑使用马尔可夫技术将丢失的信息恢复到自然语言文本中 将所有大写文字恢复为混合大小写 将重音/变音符号恢复为本应使用但已转换为普通ASCII的语言 将粗略的语音抄本转换回本地字母 这似乎是从最难到最难的顺序。基本上,问题在于根据上下文解决歧义 我可以使用Wiktionary作为字典,Wikipedia作为语料库,使用n-grams和隐马尔可夫模型来解决歧义 我走对了吗?是否已经有一些服务、库或工具用于这类事情 示例 乔治在灌木丛中丢失了他的SIM卡⇨ 乔治在灌木丛中丢失了他的SIM

我一直在考虑使用马尔可夫技术将丢失的信息恢复到自然语言文本中

  • 将所有大写文字恢复为混合大小写
  • 将重音/变音符号恢复为本应使用但已转换为普通ASCII的语言
  • 将粗略的语音抄本转换回本地字母
这似乎是从最难到最难的顺序。基本上,问题在于根据上下文解决歧义

我可以使用Wiktionary作为字典,Wikipedia作为语料库,使用n-grams和隐马尔可夫模型来解决歧义

我走对了吗?是否已经有一些服务、库或工具用于这类事情

示例

  • 乔治在灌木丛中丢失了他的SIM卡⇨ 乔治在灌木丛中丢失了他的SIM卡
  • tantot il rit是一个峡谷部署者⇨ 塔托伊特·里塔峡谷酒店

    • 我将尝试充实一下您将如何实现这些目标

      资本化 这与“序列标记问题”非常接近,并且是一个例子。专有名词最初应该大写,作为首字母缩略词的组织名称应该全部大写,然后还有其他不属于这些类别的例子。在我看来,这将比NER更难,因此基于词典的简单方法可能不是理想的解决方案

      如果要使用隐马尔可夫模型,这相当于让HMM的“隐藏”状态为[lowerCase、initCaps、allCaps],并对一些您认为正确的数据进行训练(例如Wikipedia,但也有许多其他来源)。然后,您可以推断不确定是否正确大写的单词的隐藏状态。有很多HMM库,我相信你可以找到一个适合你需要的库。我想说尝试一个HMM是一个不错的初始选择

      非ASCII字符 正如你所猜测的,这是一个更难的问题。如果你尝试在单词级使用HMM,你会有大量的隐藏状态,每个重音单词对应一个,这可能是不可能训练的。这个问题在字符级别上更容易处理,但是如果你只考虑前面的字符,则会丢失大量的上下文。如果您开始使用n-gram而不是字符,那么缩放问题就会再次出现。简而言之,我不认为这个问题和前一个问题一样,因为标签的数量太大,不能考虑它是一个序列标签问题(我的意思是,你可以,它只是不实用)。 我还没听说过这方面的研究,我也不是专家。我最好的猜测是用一种通用的语言来描述你感兴趣的语言。你可以用这个来给你一个句子的概率。然后,您可以尝试替换可能带有重音的字符,以给出这些句子的概率,并取最可能的,或者对差异使用一些阈值,或者类似的东西。您可以相当容易地在某一语言的大型语料库上训练n-gram语言模型

      我不知道这是否真的有效,无论是在准确性还是效率方面。我对这个问题没有直接的经验

      音译
      老实说,不知道。我不知道你在哪里可以找到数据来建立你自己的系统。经过短暂的搜索,我找到了该服务(带有API)。也许这就是你想要的。我甚至没有足够的使用其他脚本语言的经验来真正了解它在做什么。

      我认为您可以将马尔可夫模型(HMM)用于所有三项任务,但也可以看看更现代的模型,例如条件随机场(CRF)。此外,以下是对您的google fu的一些改进:

      • 将混合大小写还原为全部文本 帽子
      这被称为TrueCasting

      • 将重音/变音符号恢复为 应该有它们的语言,但是 已转换为普通ASCII
      我怀疑马尔可夫模型在这方面会有困难。OTOH,带标签的训练数据是免费的,因为你可以在目标语言中获取一堆重音文本并去掉重音。另见下一个答案

      • 转换粗略的语音记录 回到本地字母表

      这似乎与机器音译密切相关,机器音译已经尝试过使用(来自生物信息学/基因组工作)。

      你想使用概率技术,并利用维基百科作为这些概率的文本主体吗?这个主意很酷,但不要迷路。这本词典仍然应该首先依靠。(你似乎意识到,当你提到“含糊不清”时,它仍然值得提醒)在第1点中,你的意思是将所有大写字母中的文本恢复为混合大小写吗?否则toUpperCase()将是您所需要的一切。@Stompchick:不,我想恢复丢失/丢失的信息,更难的问题是:“乔治在灌木丛中丢失了他的SIM卡”->“乔治在灌木丛中丢失了他的SIM卡”。这就是我想的,您可能想编辑您的第一点。哇,我还没有注意到我的措辞是向后的-谢谢!我假设你说的“马尔可夫链”是指隐马尔可夫模型,但事实可能并非如此。这使得第二节的第一段有点无关紧要。其他的一切都站得住脚。是的,我指的是马尔可夫模型。我最近读了很多书,我记得GIST比术语更多(:好吧,我想我得到的区别是第一个是一个简单的分类问题示例(HMM非常合适),而第二个更难用这种方式建模。