трябва да извлека термини, специфични за домейн, от голям обучителен корпус, като например политически термини или т.н. как мога да използвам 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
Например, за да получите условия за политика, можете:
- Премахнете атрибута религия.
- Приложете филтъра
StringToWordVector
към текстовия атрибут, за да получите термини. - Приложете филтъра
AttributeSelection
сRanker
иInfoGainAttributeEval
, за да получите най-високо класираните термини.
Тази последна стъпка ще ви даде списък с термини, които са най-предсказуеми за категорията политика. Повечето от тях ще бъдат термини в домейна на политиката (въпреки че е възможно някои термини да са предсказуеми, но само защото не са в домейна на политиката - тоест предоставят отрицателни доказателства).
Качеството на условията, които получавате, зависи от набора от данни. Колкото повече теми разглежда, толкова по-добре за вашите резултати; така че вместо да има два класа (политика, религия, както в моя набор от данни), е много по-добре да има много от тях и много примери за всяка категория.
MakeIndicator
, за да преобразуваме номиналния клас в няколко атрибута, по един на стойност.
- person Jose Maria Gomez Hidalgo; 13.01.2014