我有这样的句子"在@walman工作的人不好"
我有一个包含映射的预处理文本文件,类似于以下两行:
@walman Walman
@text Test
对于上面的句子,我必须阅读文本文件,并用文本文件中找到的任何匹配单词替换该单词。
上述句子将改为"在沃尔曼工作的人并不好"
我正在寻找Standford NLP中可用的API来读取输入文本文件并替换文本。
答案 0 :(得分:1)
这里唯一与NLP相关的部分是标记化。您应该将您的文本文件读入地图(例如,如果是Java,则为HashMap
),然后对于每个新句子,您应该对其进行标记(例如,通过Stanford tokenizer),并检查每个标记是否为在地图中显示;如果是,只需用地图中找到的值替换,如果不是,则不对该标记执行任何操作。
标记化的示例代码(取自上面的链接):
String arg = "The people working in @walman is not good";
PTBTokenizer<CoreLabel> ptbt = new PTBTokenizer<CoreLabel>(new StringReader(arg),
new CoreLabelTokenFactory(), "");
for (CoreLabel label; ptbt.hasNext(); ) {
label = ptbt.next();
System.out.println(label);
}
}
因此,label.toString()
为您提供没有任何后缀的令牌。