R Aspell доморощенный - PullRequest
       34

R Aspell доморощенный

23 голосов
/ 19 июля 2011

работает на MacBook Pro с ОС 10.6.Я недавно установил пакет Aspell с менеджером пакетов R, и кажется, что установка прошла нормально (без ошибок установки).но когда я пытаюсь использовать aspell, я получаю следующую ошибку:

> aspell("love")
Error in getSpeller() :
  No word lists can be found for the language "en_US".

Я также пытался

> aspell("love", program = "/usr/local/bin/aspell")

Я также установил aspell и hunspell отдельно, используя GitHubs homebrew.Когда я установил aspell с помощью homebrew, я использовал

brew install aspell --lang=en_US

. Где-нибудь я ищу на своем Mac, чтобы проверить, установлен ли язык en_US?И если я обнаружу, что en_US существует, есть ли какие-либо предложения относительно того, почему R не находит его?

Я немного новичок, когда дело доходит до тонкостей установки из исходных файлов.Любая помощь будет высоко ценится.

Ответы [ 4 ]

41 голосов
/ 06 декабря 2013

Как показано в нижней части формулы aspell, вы можете использовать опцию --with-lang-#{name}.В моем случае я хотел установить несколько словарей: de, en & pl .Я сделал это с помощью этой команды:

brew install aspell --with-lang-de --with-lang-en --with-lang-pl

Для просмотра всех доступных вариантов установки используйте brew info aspell (Спасибо, Андрей)

Опция 1014 *, упомянутая в этой теме с --lang=de,en,pl, не работает для меня.

33 голосов
/ 01 декабря 2011

Прошло много времени, но у меня недавно была та же проблема, и исправление было:

brew remove aspell
brew install aspell --lang=en

Я должен был уделить больше внимания, когда это пролетело в оригинальной установке brew:

Словари не устанавливаются автоматически, укажите языки, для которых вы хотите, чтобы словари были установлены с Опция --lang, например:% brew install aspell --lang = ru, es

Для следующих языков доступны словари aspell: af, am, ar, ast, az, be, bg, bn, br, ca, cs, csb, cy, da, de, de_alt, el, en, эо, эс, эт, фа, фи, фо, фр, фу, фу, га, бд, гл, грк, гу, гв, он, привет, хил, hr, hsb, hu, hy, ia, id, is, it, kn, ku, ky, la, lt, lv, mg, mi, mk, ml, mn, mr, ms, mt, nb, nds, nl, nn, ny или, pa, pl, pt_BR, pt_PT, qu, ro, ru, rw, sc, sk, sl, sr, sv, sw, ta, te, tet, tk, tl, tn, tr, uk, уз, ви, ва, йи, цу

3 голосов
/ 19 июля 2011

Я не понимаю, что ты делаешь. aspell - это функция в пакете utils, поэтому она загружается по умолчанию при запуске R. Первым аргументом aspell является имя файла, а не текстовый вектор. Вам может потребоваться установить словарь, к которому может обращаться функция aspell. Но на моем Mac у меня уже установлено несколько версий (и, возможно, потребуется выполнить некоторую очистку.) В репозитории Omegahat также есть та, которая была протестирована с R. Интерфейс с Aspell, вероятно, будет пытаться выбрать правильный язык. Вы можете увидеть, что R считает правильным языком, с помощью sessionInfo () и посмотреть свои настройки LOCALE. Вы можете найти местоположение вашей установки Aspell с помощью Terminal.app, введя locate aspell в командной строке.

Это модификация примера в справке (aspell), который проверяет орфографию t * .dat файлов:

files <- Sys.glob("~/t*.dat")
 res <- aspell(files)
 str(res)
 length(res$File)
#[1] 309    # so I probably should have been more narrow than asking for .dat files beginning with "t".
1 голос
/ 17 июля 2012

Как примечание, aspell() работает с факторами, но не с символьными векторами.Это не поможет до тех пор, пока у вас установлен Aspell (или другая проверка орфографии), но после этого, если вы хотите использовать aspell() для данных в R (а не просто для работы с файлами), убедитесь, что они правильно отформатированы.

Вот пример:

> str1 <- "This is a string with a mispeled word"
> str1 <- as.character(str1)
> aspell(str1)
Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") :
  cannot open file 'This is a string with a mispeled word': No such file or directory
> str1 <- "This is a string with a mispelled word"
> str1 <- as.factor(str1)
> results1 <- aspell(str1)
> results1 
mispelled
  <unknown>:1:25
...