2015-04-24 2 views
1

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

Однако я столкнулся с этим tutorial от Scikit-learn, который использует конкретные структуры данных для решения проблемы.

Мои вопросы:

1 - Как люди решают такую ​​проблему с помощью Java в целом?

2- Есть ли решение, подобное решению, данному в scikit-learn?

Редактировать: единственное, что я нашел до сих пор, - это лично написать реализацию разреженного вектора с использованием HashTables.

+0

Пожалуйста, напишите ваше требование, связанное с сбором здесь, в частности. –

ответ

1

Если вы хотите построить эту систему на Java, я предлагаю вам использовать Weka, которая является программным обеспечением для машинного обучения, подобным sklearn. Вот простой учебник о классификации текста с Weka:

https://weka.wikispaces.com/Text+categorization+with+WEKA

Вы можете скачать Weka от:

http://www.cs.waikato.ac.nz/ml/weka/downloading.html

1

HashSet/HashMap являются обычным способом люди магазина мешок из-слов векторов в Java - это, естественно, редкие представления, которые растут не с размером словаря, а с размером документа, а последние обычно намного меньше.

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

Большинство фреймворков НЛП принимают это решение для вас в любом случае - вам нужно поставлять вещи в том формате, который им нужен.

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