我想做的事:
用户加载文本。我分析它并从中获取所有单词和标点符号。现在,我可以通过快速翻译每个单词或分析单词的附加信息,轻松地为其他用户呈现文本。
现在我正在尝试使用treat gem(NLP for ruby),但它有很多问题。
例如在句子
“世界不全是阳光和彩虹。”
它将 ain't 分为两个词“ai”和“n't”
任何人都可以建议一些库或gem,也许我可以用jruby实现,我可以在没有问题的情况下用单词和标点符号分隔文本。
或者 mb 我的想法错了,还有其他方法吗?
我想做的事:
用户加载文本。我分析它并从中获取所有单词和标点符号。现在,我可以通过快速翻译每个单词或分析单词的附加信息,轻松地为其他用户呈现文本。
现在我正在尝试使用treat gem(NLP for ruby),但它有很多问题。
例如在句子
“世界不全是阳光和彩虹。”
它将 ain't 分为两个词“ai”和“n't”
任何人都可以建议一些库或gem,也许我可以用jruby实现,我可以在没有问题的情况下用单词和标点符号分隔文本。
或者 mb 我的想法错了,还有其他方法吗?
为什么不从简单的扫描开始,使用简单的正则表达式从文本中获取所有单词?http://ruby-doc.org/core-2.1.0/String.html#method-i-scan
对于英语,正则表达式应该是简单的 \w,以及一些特殊字符,如您指示的 '。
您是否尝试过使用同一作者的open-nlp gem?
那里的一个例子表明它可以做你想做的事:
OpenNLP.load
text = "The death of the poet was kept from his poems."
tokenizer = OpenNLP::SimpleTokenizer.new
tokens = tokenizer.tokenize(text).to_a
# => %w[The death of the poet was kept from his poems .]
不幸的是,由于我现在没有jruby
在我的机器上,我无法确认它对于带有撇号的单词的情况是否按预期工作。