мне нужно извлечь термины, относящиеся к предметной области, из большого учебного корпуса, такие как политические термины и т. д. Как я могу использовать Weka и ее фильтры для нацеливания на этот объект? Могу ли я использовать вектор признаков, созданный фильтром StringToVector()
в Weka, чтобы сделать это или нет?
как я могу использовать weka для извлечения терминологии?
Ответы (1)
Можно хотя бы частично, насколько у вас есть соответствующий набор данных. Например, предположим, что у вас есть такой набор данных:
@relation test
@attribute text String
@attribute politics {yes,no}
@attribute religion {yes,no}
@data
"this is a text about politics",yes,no
"this text is about religion",no,yes
"this text mixes everything",yes,yes
Например, чтобы получить термины о политике, вы можете:
- Удалите атрибут religion.
- Примените фильтр
StringToWordVector
к текстовому атрибуту, чтобы получить термины. - Примените фильтр
AttributeSelection
сRanker
иInfoGainAttributeEval
, чтобы получить термины с самым высоким рейтингом.
На последнем шаге вы получите список терминов, наиболее подходящих для категории политика. Большинство из них будут терминами из области политики (хотя возможно, что некоторые термины являются прогностическими, но только потому, что они не из области политики, то есть они предоставляют отрицательные доказательства).
Качество терминов, которые вы получаете, зависит от набора данных. Чем больше тем он затрагивает, тем лучше для ваших результатов; поэтому вместо того, чтобы иметь два класса (политика, религия, как в моем наборе данных), гораздо лучше иметь их много и много примеров для каждой категории.
MakeIndicator
для преобразования номинального класса в несколько атрибутов, по одному на значение.
- person Jose Maria Gomez Hidalgo; 13.01.2014