2014-01-22 52 views
0

我需要使用斯坦福POS标记器标记Tweets中的文字。斯坦福POS标记器的POS直方图

如这里1解释的,我使用的类MaxentTagger,然后方法:maxtagger.tagString("This is a sample text");

这产生输出:

This_DT is_VBZ a_DT sample_NN text_NN

现在,我必须为每条推文创建每个标签发生的直方图推文。我在JavaDoc中搜索过,但没有发现任何用处。

如果我必须自己创建直方图,如何以其他方式读取输出而不是字符串(例如,标记列表)?

回答

2

我建议使用方法tagCoreLabels()或tagSentence()来代替。例如。使用tagSentence(),您可以从中获取TaggedWord的列表,您可以使用tag()方法轻松访问pos标记。这应该包含带有“_”的POS标签的单词或模型。

要使用简单的句子串创建列表,请使用PTBTokenizer,例如,

List<CoreLabel> tokens = new PTBTokenizer<CoreLabel>(
    new StringReader(s),new CoreLabelTokenFactory(),"invertible").tokenize(); 

使用PTBEscapingProcessor逃脱,在解析器车型有特殊含义的字符:

new PTBEscapingProcessor().apply(tokens) 

我相信这是在斯坦福工具直方图没有具体的支持,但我可能是错的。

+0

似乎很好,但我怎么能得到一个对象: java.util.List <?从字符串文本扩展HasWord> ? – Francesco

相关问题