Как использовать stemDocument в пакете R language tm (text mining)? - PullRequest
2 голосов
/ 01 октября 2011

Я пытаюсь остановить Корпус, используя stemDocument в пакете R language tm, который вызывает Java. Я попробовал пример в руководстве tm:

data("crude")
crude[[1]]
stemDocument(crude[[1]])

и получите следующую ошибку:

Could not initialize the GenericProperitiesCreator.  This exception was produced:  
java.lang.NullPointerException

Любая помощь приветствуется. Я ничего не знаю о Java.

Спасибо

Ответы [ 3 ]

1 голос
/ 25 ноября 2011

У меня была такая же ошибка на моей стороне.Решил это, добавив Snowball .jar и соответствующий / словесный набор стволовых слов в моем пути к классам: C: \ Users \ xxx.xxx \ Documents \ R \ win-library \ 2.12 \ Snowball \ java

Это было рекомендовано здесь: http://weka.wikispaces.com/Stemmers

У меня все еще есть следующая ошибка, но теперь она работает нормально:

Trying to add database driver (JDBC): RmiJdbc.RJDriver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): jdbc.idbDriver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): org.gjt.mm.mysql.Driver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Warning, not in CLASSPATH?
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Warning, not in CLASSPATH?
[KnowledgeFlow] Loading properties and plugins...
[KnowledgeFlow] Initializing KF...
1 голос
/ 10 января 2013

Средство запуска Snowball (snowball.jar) не может найти файл weka.jar.

На вашем компьютере вам нужно найти файл weka.jar. В моей системе Linux это находится в

/ USR / местные / Библиотека / R / сайт-библиотека / RWekajars / Java / weka.jar

Затем в вашем коде R добавьте строки, подобные этим вверху:

wekajar="/usr/local/lib/R/site-library/RWekajars/java/weka.jar"
oldcp=Sys.getenv("CLASSPATH")
newcp=NULL
Sys.setenv(CLASSPATH=paste(wekajar,newcp, sep=":"))

library("tm")    
data("crude")
stemDocument(crude[[1]], language = "english" )

Это устанавливает Java CLASSPATH для сеанса R в файл weka.jar сверху. Ваш существующий путь к классу будет сброшен, хотя. Вы можете попытаться добавить старые записи обратно, если они у вас есть, и если они вам нужны.

1 голос
/ 12 ноября 2011

Хороший вопрос, вы с этим справились?

Я получаю ту же ошибку только с тем кодом, который у вас есть.Но если вы будете следовать примеру с самого начала (т. Е. Преобразования заголовка в стр. 1 ) и создать корпус и преобразовать его в простой текстовый документ, тогда вы избежите ошибки Java.Я предполагаю, что пример кода в руководстве предполагает, что вы уже выполнили эти два шага.

Тем не менее, когда я проверяю результаты, на самом деле нет никаких оснований ... Я могу 't даже получить простой пример @ user813966 для stemDocument, чтобы сделать любой stemming.Вместо этого я смотрю на пакеты RStem и SnowBall.

Тем временем, мой пакетный инструмент - пакет Python NLTK .

Обновление : я получил работающую функцию stemDocument, добавив language = "english"следующим образом:

a <- tm_map(a, stemDocument, language = "english") 

Таким образом, полный ответ на ваш вопрос состоит в том, чтобы выполнить все шаги ввода текста в R в соответствии с пакетом tm.Вам также понадобится rJava (и для установки переменных среды для JAVA_HOME в каталог, содержащий каталог jre, если вы работаете в windows), чтобы работа stemDocument

...