working on prefixes hypotities

git-svn-id: https://russianmorphology.googlecode.com/svn/trunk@86 d817d54c-26ab-11de-abc9-2f7d1455ff7a
This commit is contained in:
Alexander.A.Kuznetsov
2009-11-11 22:21:14 +00:00
parent 97fa8fa868
commit 6246f020fd
10 changed files with 577 additions and 15 deletions

View File

@ -1,18 +1,20 @@
package org.apache.lucene.morphology.dictionary;
import org.apache.lucene.morphology.PrefixRule;
import java.util.*;
import java.io.IOException;
import java.io.BufferedReader;
public class PrefixesHypotises extends DictonaryReader {
public class PrefixesRulesBuilder extends DictonaryReader {
private Map<FlexiaModel,Set<FlexiaModel>> rules = new HashMap<FlexiaModel,Set<FlexiaModel>>();
public PrefixesHypotises(String fileName, Set<String> ingnoredForm) {
public PrefixesRulesBuilder(String fileName, Set<String> ingnoredForm) {
super(fileName, ingnoredForm);
}
public PrefixesHypotises(String fileName, String fileEncoding, Set<String> ingnoredForm) {
public PrefixesRulesBuilder(String fileName, String fileEncoding, Set<String> ingnoredForm) {
super(fileName, fileEncoding, ingnoredForm);
}
@ -23,6 +25,22 @@ public class PrefixesHypotises extends DictonaryReader {
System.out.println(rules);
}
public List<PrefixRule> getPrefixRules(){
List<PrefixRule> prefixRules = new ArrayList<PrefixRule>();
for(FlexiaModel key:rules.keySet()){
PrefixRule prefixRule = new PrefixRule();
prefixRule.setPrefix(key.getPrefix());
prefixRule.setLastLetter(key.getSuffix().charAt(0));
HashSet<String> map = new HashSet<String>();
for(FlexiaModel fm:rules.get(key)){
map.add(fm.getCode());
}
prefixRule.setForms(map);
prefixRules.add(prefixRule);
}
return prefixRules;
}
@Override
protected void readWords(BufferedReader reader, WordProccessor wordProccessor) throws IOException {
sckipBlock(reader);

View File

@ -17,7 +17,6 @@
package org.apache.lucene.morphology.generator;
import org.apache.lucene.morphology.dictionary.*;
import org.apache.lucene.morphology.russian.RussianLetterDecoderEncoder;
import java.io.IOException;
import java.util.HashSet;
@ -26,7 +25,7 @@ import java.util.HashSet;
public class RussianPrefixesBuilder {
public static void main(String[] args) throws IOException {
GrammaReader grammaInfo = new GrammaReader("dictonary/Dicts/Morph/rgramtab.tab");
PrefixesHypotises dictonaryReader = new PrefixesHypotises("dictonary/Dicts/SrcMorph/RusSrc/morphs.mrd", new HashSet<String>());
PrefixesRulesBuilder dictonaryReader = new PrefixesRulesBuilder("dictonary/Dicts/SrcMorph/RusSrc/morphs.mrd", new HashSet<String>());
//RussianLetterDecoderEncoder decoderEncoder = new RussianLetterDecoderEncoder();
//StatiticsCollector statiticsCollector = new StatiticsCollector(grammaInfo, decoderEncoder);

View File

@ -0,0 +1,372 @@
[ ть
у
ем
ешь
ете
ет
ут
ла
ло
ли
я
ши
ем
емте
по ай
ь
по айте
ьте
ущий
ущего
ущему
ущего
ущий
ущим
ущем
ущая
ущей
ущей
ущую
ущей
ущею
ущей
ущее
ущего
ущему
ущее
ущим
ущем
ущие
ущих
ущим
ущих
ущие
ущими
ущих
ший
шего
шему
шего
ший
шим
шем
шая
шей
шей
шую
шей
шею
шей
шее
шего
шему
шее
шим
шем
шие
ших
шим
ших
шие
шими
ших]
[ большой
большого
большому
большого
большой
большим
большом
большая
большой
большой
большую
большой
большою
большой
большое
большого
большому
большое
большим
большом
большие
больших
большим
больших
большие
большими
больших
велик
велика
велико
велики
больше
по больше
наи больший
наи большего
наи большему
наи большего
наи больший
наи большим
наи большем
наи большая
наи большей
наи большей
наи большую
наи большей
наи большею
наи большей
наи большее
наи большего
наи большему
наи большее
наи большим
наи большем
наи большие
наи больших
наи большим
наи больших
наи большие
наи большими
наи больших]
[ вероятный
вероятного
вероятному
вероятного
вероятный
вероятным
вероятном
вероятная
вероятной
вероятной
вероятную
вероятной
вероятною
вероятной
вероятное
вероятного
вероятному
вероятное
вероятным
вероятном
вероятные
вероятных
вероятным
вероятных
вероятные
вероятными
вероятных
вероятен
вероятна
вероятно
вероятны
вероятнее
вероятней
по вероятнее
по вероятней
вероятнейший
наи невероятнейший
вероятнейшего
наи невероятнейшего
вероятнейшему
наи невероятнейшему
вероятнейшего
наи невероятнейшего
вероятнейший
наи невероятнейший
вероятнейшим
наи невероятнейшим
вероятнейшем
наи невероятнейшем
вероятнейшая
наи невероятнейшая
вероятнейшей
наи невероятнейшей
вероятнейшей
наи невероятнейшей
вероятнейшую
наи невероятнейшую
вероятнейшей
вероятнейшею
наи невероятнейшей
наи невероятнейшею
вероятнейшей
наи невероятнейшей
вероятнейшее
наи невероятнейшее
вероятнейшего
наи невероятнейшего
вероятнейшему
наи невероятнейшему
вероятнейшее
наи невероятнейшее
вероятнейшим
наи невероятнейшим
вероятнейшем
наи невероятнейшем
вероятнейшие
наи невероятнейшие
вероятнейших
наи невероятнейших
вероятнейшим
наи невероятнейшим
вероятнейших
наи невероятнейших
вероятнейшие
наи невероятнейшие
вероятнейшими
наи невероятнейшими
вероятнейших
наи невероятнейших]
[ аленький
аленького
аленькому
аленького
аленький
аленьким
аленьком
аленькая
аленькой
аленькой
аленькую
аленькой
аленькою
аленькой
аленькое
аленького
аленькому
аленькое
аленьким
аленьком
аленькие
аленьких
аленьким
аленьких
аленькие
аленькими
аленьких
ал
ала
ало
алы
еньше
по еньше
алейший
наи еньший
алейшего
наи еньшего
алейшему
наи еньшему
алейшего
наи еньшего
алейший
наи еньший
алейшим
наи еньшим
алейшем
наи еньшем
алейшая
наи еньшая
алейшей
наи еньшей
алейшей
наи еньшей
алейшую
наи еньшую
алейшей
алейшею
наи еньшей
наи еньшею
алейшей
наи еньшей
алейшее
наи еньшее
алейшего
наи еньшего
алейшему
наи еньшему
алейшее
наи еньшее
алейшим
наи еньшим
алейшем
наи еньшем
алейшие
наи еньшие
алейших
наи еньших
алейшим
наи еньшим
алейших
наи еньших
алейшие
наи еньшие
алейшими
наи еньшими
алейших
наи еньших]
[ ьный
ьного
ьному
ьного
ьный
ьным
ьном
ьная
ьной
ьной
ьную
ьной
ьною
ьной
ьное
ьного
ьному
ьное
ьным
ьном
ьные
ьных
ьным
ьных
ьные
ьными
ьных
ен
ьна
ьно
ьны
ьны
ьнее
ьней
по ьнее
по ьней
наи ьнейший
наи ьнейшего
наи ьнейшему
наи ьнейшего
наи ьнейший
наи ьнейшим
наи ьнейшем
наи ьнейшая
наи ьнейшей
наи ьнейшей
наи ьнейшую
наи ьнейшей
наи ьнейшею
наи ьнейшей
наи ьнейшее
наи ьнейшего
наи ьнейшему
наи ьнейшее
наи ьнейшим
наи ьнейшем
наи ьнейшие
наи ьнейших
наи ьнейшим
наи ьнейших
наи ьнейшие
наи ьнейшими
наи ьнейших]