Существует ли библиотека ruby ​​для проверки, является ли строка допустимым словом? - PullRequest
3 голосов
/ 18 февраля 2010

Я пытаюсь выделить отдельные слова в файле pdf, но при чтении файла с использованием гема pdf-reader текст получается сломанным, как это

"A lit"
"tle "
"bit of tex"
"t"

Так что я планирую собрать их вместе, используя некоторые эвристики. Для этого мне нужна библиотека, которая проверяет, является ли данная строка действительным английским словом, например

"tree".is_english? # => true
"askdjfah".is_english? # => false

Это существует? В идеале это также будет работать с немецким текстом.

Если нет, есть ли какой-нибудь свободно доступный словарь онлайн? Я думаю, я мог бы написать свою собственную древовидную структуру для поиска, если бы мне пришлось.

Ответы [ 3 ]

3 голосов
/ 18 февраля 2010

Вы можете проверить raspell или даже вручную вызвать aspell с любым словарем, который вам нравится.

2 голосов
/ 18 февраля 2010

Если в вашей системе установлен инструмент Unix look, вы можете легко проверить, является ли слово словом. Пример:

strings = %w{ cat dog tree trees treez }

strings.each do |string|
  if system("look #{string} > /dev/null 2>&1") 
    puts "#{string} is a word"
  else
    puts "#{string} is not a word"
  end
end

Подробнее о look: http://docstore.mik.ua/orelly/unix/upt/ch27_18.htm

Поскольку look использует словарь слов в / usr / dict / words, я думаю, что можно установить словарь немецких слов. Ищите пакет wgerman в Debian. Я не уверен, как установить его в других системах.

0 голосов
/ 18 февраля 2010

Я не знаю ни одной библиотеки, которая делает то, что вы хотите, но есть словари со словами. Не должно быть трудно найти их в Google. Например это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...