说我有一个基地形成的一个词,一个标记 Penn句法设置标签.我如何可以得到的结合形式?例如,对"要做"和"购买"我怎么能得到"完了"?

我认为这任务是已经实施某些自然语言的图书馆,所以我宁愿不是创造自行车。不喜欢的东西存在?

有帮助吗?

解决方案

如果你有一类:

public Treebank {
    public String conjugate(String base, String formTag);

    ...
}

然后:

String conjugated = treebank.conjugate(base, formTag);

如果你没有句法类它可能看起来有点象这样:

public Treebank {
    private Map<String, Map<String, String>> m_map = new HashMap<String, Map<String, String>>();

    public Treebank() {
        populate();
    }

    public String conjugate(String base, String formTag) {
        return m_map.get(base, formTag);
    }

    private void populate() {
        InputStream istream = openDataFile();

        try {
            for (Record record = readRecord(istream); record !== null; record = readRecord(istream)) {

                // Add the entry
                Map<String, String> entry = m_map.get(record.base);

                if (entry == null)
                    entry = new HashMap<String, String>();

                entry.put(record.formTag, record.conjugatedForm);
                m_map.put(record.base, entry);
           }
        }
        finally {
            closeDataFile(istream);
        }
    }

    // Data management - to be implemented.
    private InputStream openDataFile()                     { ... }
    private Record      readRecord(InputStream istream)    { ... }
    private void        closeDataFile(InputStream istream) { ... }

    private static class Record {
        String base;
        String formTag;
        String conjugatedForm;
    }
}

一个更好的解决方案可能涉及一个数据库,而不是一个数据文件。我还要重构对数据访问代码进入一个数据访问的对象。

其他提示

你想要什么在这里做的是创建一个疏列保持答案,可通过这个词本身作为一个关键,而PTTS码(CC,要,自愿献血)的其他关键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top