我想做什么:
用户加载文本。我分析它并从中得到所有的单词和标点符号。现在,我可以轻松地为其他用户呈现文本,快速翻译每个单词或分析单词的其他信息。
现在我正在尝试使用treat gem(用于ruby的NLP)但是它有很多问题。
例如在句子中
“世界并非都是阳光和彩虹。”
它分为两个词“ai”和“not”
任何人都可以建议一些库或宝石,也许我可以用jruby实现,我可以在没有问题的情况下将单词和标点文本分开。
或者mb我的想法错了,还有其他方法吗?
答案 0 :(得分:0)
为什么不从简单的扫描开始,使用简单的正则表达式从文本中获取所有单词? http://ruby-doc.org/core-2.1.0/String.html#method-i-scan
对于英语,正则表达式应该只是\ w,以及一些特殊字符,如'你指示。
答案 1 :(得分:0)
您是否尝试过使用同一作者的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
,所以我无法确认它是否与带有撇号的单词的情况一样正常工作。