斯坦福NLP如何预处理文本
Stanford NLP how to preprocessing the text
我有这样一句话"The people working in @walman are not good"
我有一个包含映射的预处理文本文件,类似于以下两行:
@walman Walman
@text Test
对于上面的句子,我必须通读文本文件并将该词替换为在文本文件中找到的任何匹配词。
上面这句话会改成"The people working in Walman are not good"
我正在寻找 Standford NLP 中可用的 API 来读取输入文本文件并替换文本。
这里唯一与 NLP 相关的部分是标记化。您应该将您的文本文件读入地图(例如 HashMap
在 Java 的情况下),然后对于每个新句子,您应该将其标记化(例如 Stanford tokenizer),并检查每个令牌,如果它出现在地图中;如果是,只需替换为从地图中找到的值,如果不是,则对此标记不做任何操作。
标记化示例代码(取自上面的link):
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()
为您提供没有任何后缀的令牌。
我有这样一句话"The people working in @walman are not good"
我有一个包含映射的预处理文本文件,类似于以下两行:
@walman Walman
@text Test
对于上面的句子,我必须通读文本文件并将该词替换为在文本文件中找到的任何匹配词。
上面这句话会改成"The people working in Walman are not good"
我正在寻找 Standford NLP 中可用的 API 来读取输入文本文件并替换文本。
这里唯一与 NLP 相关的部分是标记化。您应该将您的文本文件读入地图(例如 HashMap
在 Java 的情况下),然后对于每个新句子,您应该将其标记化(例如 Stanford tokenizer),并检查每个令牌,如果它出现在地图中;如果是,只需替换为从地图中找到的值,如果不是,则对此标记不做任何操作。
标记化示例代码(取自上面的link):
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()
为您提供没有任何后缀的令牌。