3

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

 label: 'misc.forsale' 
     subj: ' Motorcycle wanted.' 
    keyword: [1x190 char] 
    reference: [] 
organization: ' Worcester Polytechnic Institute' 
     from: ' [email protected] (John Kedziora)' 
    summary: [] 
     lines: ' 11' 
     vocab: [4x2 double] 

Я хочу, чтобы классифицировать их с class = classify(test, train, target, 'diaglinear');
, но эти функции принимают только массивы в качестве входных данных и не принимают ячейки или структуры.

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

Что я могу сделать?

+0

Вам не нужно сначала извлекать некоторые функции для каждого документа, что-то вроде [TF-IDF] (http://en.wikipedia.org/wiki/Tf*idf) – Amro

+0

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

ответ

1

Выполните некоторые функции извлечения в первую очередь. Например, отметьте строки, затем используйте TF-IDF.

Вы можете включить ключ с помощью токенов. Это обычная практика в поиске информации. См. Руководство Xapian для примера.

Обычно вы будете выполнять некоторые операции, например. Examples -> exampl. Теперь просто добавьте префикс, чтобы сделать слова различными в зависимости от их появления. Например. Sexampl, когда предмет содержал example и Kexampl, когда это было ключевое слово.

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

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