确定罗马化名称是否为日语,最好是Ruby

时间:2012-07-10 23:16:21

标签: ruby nlp cjk

如何确定罗马化名称是否可能或不太可能是日语名称?

"Yukihiro Matsumoto".likely_to_be_japanese? # => true
"John Smith".likely_to_be_japanese? # => false

理想情况下,我还想提供自由格式文本,并检测文本是否有可能是日文的名称,名称不太可能是日文,或者其中没有任何名称。最好忽略误报。

"call Koichi on (02) 5550 5555".has_japanese_name_in_it? # => true
"call John on (02) 5550 5556".has_non_japanese_name_in_it? # => true
"utility bill to be shared equally".has_non_japanese_name_in_it? => false

是否有任何库可以帮助我这样做,最好是在Ruby中?或者我是否必须找到日语和非日语的语料库并建立我自己的解决方案?

2 个答案:

答案 0 :(得分:1)

您可以使用Google翻译等内容。将matsumoto从英语翻译成日语会给你2个汉字结果(matsu + moto),因为它是日语。

答案 1 :(得分:0)

如果你想得到真正的幻想,请用this与斯坦福分析师联系,并将你的句子和名字分开。

您正在寻找NNP,因此您的输出看起来像这样

Parsing [sent. 1 len. 5]: Matsumoto was a nice guy
(ROOT
  (S
    (NP (NNP Matsumoto))
    (VP (VBD was)
      (NP (DT a) (JJ nice) (NN guy)))))

然后你将使用日语部分的字典查找

但是,真的,你可能会很好地拆分字符串并自己进行字典查找。