2015-07-17 4 views
-1

Я хотел бы построить текстовый корпус для проекта NLP в Python. Я видел этот текстовый формат в запросе LSHTC4 Kaggle:Предварительная обработка текста в Python

5 0:10 8:1 18:2 54:1 442:2 3784:1 5640:1 43501:1 

Первое число соответствует этикетке.

Каждый набор чисел, разделенных символом ':', соответствует паре (функция, значение) вектора, где первым номером является идентификатор функции, а второй номер - его частота (например, функция с идентификатором 18 появляется 2 раз в этом случае).

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

+0

так что означает начальный символ '5'? –

+0

Это категория, которой принадлежит ваш документ, это ярлык –

ответ

0

В пакете R нет пакета, а не на Python, если я не ошибаюсь). Сначала все расстается (и удалите это начальное 5). Я предполагаю, что вы хотите, чтобы результат в виде чисел, а не строк:

x<-"5 0:10 8:1 18:2 54:1 442:2 3784:1 5640:1 43501:1" 
y<-as.integer(unlist(strsplit(x,split=" |:"))[-1]) 
feature<-y[seq(1,length(y),by=2)] 
[1]  0  8 18 54 442 3784 5640 43501 
value<-y[seq(2,length(y),by=2)] 
[1] 10 1 2 1 2 1 1 1 

Если вы хотите, чтобы они бок о бок:

cbind(feature,value) 
    feature value 
[1,]  0 10 
[2,]  8  1 
[3,]  18  2 
[4,]  54  1 
[5,]  442  2 
[6,] 3784  1 
[7,] 5640  1 
[8,] 43501  1 

Если вы хотите назначить их data.table для анализа:

библиотека (data.table) дт < -data.table (функция = функция, значение = значение)

> dt 
    feature value 
1:  0 10 
2:  8  1 
3:  18  2 
4:  54  1 
5:  442  2 
6: 3784  1 
7: 5640  1 
8: 43501  1 

И т.д.

Смежные вопросы