Есть ли способ проверить правильность написания слов в символьном векторе? - PullRequest
2 голосов
/ 02 сентября 2010

Текст для проверки написан на греческом языке, но я хотел бы знать, можно ли это сделать и для английских слов.Моя первоначальная идея описана здесь , и я уже нашел способ сделать это с помощью VBA.Но мне интересно, есть ли способ сделать это с помощью R. Если в R нет способа, думаете ли вы о чем-то лучше, чем Excel-vba?

Ответы [ 2 ]

5 голосов
/ 02 сентября 2010

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

Это было проверено на v3.0;расположение файла может измениться, а имя файла будет меняться в зависимости от того, какой словарь вы хотите.

library(stringr)
dict <- readLines("C:/Program Files/OpenOffice.org 3/share/uno_packages/cache/uno_packages/174.tmp_/dict-en.oxt/th_en_US_v2.dat")
is_word <- str_detect(dict, "^[^(]")
words <- str_split_fixed(dict[is_word], "\\|", 2)
words <- words[,1]

Этот список содержит несколько словосочетаний.Вы можете предпочесть разделить на первый пробел и принять уникальные значения.Возможно, вы также захотите записать words в файл, чтобы избежать повторения.

Как только это будет сделано, проверить слово так же просто, как

c("persnickety", "sqwrzib") %in% words      # TRUE FALSE
2 голосов
/ 02 сентября 2010

Существует программа проверки орфографии GNU с открытым исходным кодом, которая называется Aspell с поддержкой различных языков.Это программа командной строки, которую я в основном использую для сканирования групп текстовых файлов сразу (тогда вывод просто передается на консоль).
Но также существует C API и, возможно, более интересныйдля вас Режим конвейера , который принимает потоки текста и выводит на стандартный вывод.

Надеюсь, это поможет.

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