无法激活 wordnet - require 'wordnet' 失败

Unable to activate wordnet - require 'wordnet' fails

我正在编写 Ruby 脚本,我想使用 wordNet 来提取字符串。我想给它一个可能包含相同形式的单词的字符串,然后取回该字符串,但在对它进行词干处理之后。我遇到了 Ruby-WordNet and installed wordnet gem and wordnet-defaultdb gem. I also installed Sequel 因为它是必需的。

但是,我不确定如何处理它。当我输入脚本时:

require 'rubygems'
require 'sequel'
require 'wordnet'

我收到以下错误:

/Users/arwa/.rvm/rubies/ruby-  2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2112:in  `raise_if_conflicts': Unable to activate wordnet-1.0.0, because sequel-4.24.0  conflicts with sequel (~> 3.38) (Gem::ConflictError)
from /Users/arwa/.rvm/rubies/ruby- 2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:1280:in `activate'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems.rb:198:in `rescue in try_activate'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems.rb:195:in `try_activate'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from ./test.rb:5:in `<main>'

如果我删除了

require 'sequel'

我收到以下错误:

/Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require': cannot load such file -- sequel (LoadError)
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from /Users/arwa/.rvm/gems/ruby-2.2.1/gems/wordnet-1.0.0/lib/wordnet.rb:5:in `<top (required)>'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
from /Users/arwa/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from ./test.rb:4:in `<main>'

我不确定问题是什么以及如何处理。

有人知道它是如何工作的吗?

此外,如果有人可以指导我到一个地方,我可以在其中找到有关如何对其进行编码和处理的示例。

非常感谢。

您安装了冲突的 gem 版本:

require 'rubygems'
gem 'sequel', '3.48'
require 'sequel'
require 'wordnet'

将解决您的问题。

您可以用 Gemfile 帮助自己。 运行 bundle init 创建一个。 运行 gem install bundler 如果你没有捆绑器。

宝石文件:

source "https://rubygems.org"
gem 'sequel'
gem 'wordnet'

运行 bundle 保存 Gemfile 后。检查 Gemfile.lock 的解决方案。

错误提示您有版本冲突。

看看 gem list sequel --all 怎么说。很有可能你使用 gem install sequel 只加载了最新版本的 Sequel 而没有指定版本,或者你有两个版本,一个由 WordNet 指定,另一个是最新的

尝试 removing/uninstalling 安装所有 Sequel 版本并仅重新安装特定版本:

gem install sequel -v3.38

您也可以尝试修改 WordNet 的 gem 要求,使其不需要特定版本的 Sequel。 Sequel 非常稳定,所以这应该是一个安全的举动。