Apache Tika是否能够提取中文,日文等外语?
我有以下代码:
Detector detector = new DefaultDetector();
Parser parser = new AutoDetectParser(detector);
InputStream stream = new ByteArrayInputStream(bytes);
OutputStream outputstream = new ByteArrayOutputStream();
ContentHandler textHandler = new BodyContentHandler(outputstream);
Metadata metadata = new Metadata();
// Set<String> langs = LanguageIdentifier.getSupportedLanguages();
// metadata.set(Metadata.CONTENT_LANGUAGE, lang);
// metadata.set(Metadata.FORMAT, hint);
ParseContext context = new ParseContext();
try {
parser.parse(stream, textHandler, metadata, context);
String extractedText = outputstream.toString();
return extractedText;
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (TikaException e) {
e.printStackTrace();
}
如果输入是包含中文字符的doc文件,则每个中文字符将被提取为“?”。
非常感谢!
答案 0 :(得分:1)
Apache Tika能够从其支持的文件格式中提取unicode文本。只要文件格式可以存储unicode文本(例如中文或日文字符),Apache Tika就可以提取它
Tika还包括一些针对此的单元测试,以验证其是否有效。一个这样的测试使用this sample chinese email。如果使用命令行Tika app,并抓住前几行,我们看到它正常工作:
$ java -jar tika-app-1.4.jar --text testMSG_chinese.msg | head
Alfresco MSG format testing ( MSG 格式測試 )
From
Tests Chang@FT (張毓倫)
To
Tests Chang@FT (張毓倫)
Recipients
tests.chang@fengttt.com
或使用此Japanese document:
$ java -jar tika-app-1.4.jar --text testRTFJapanese.rtf | head -2
ゾルゲの処刑記録、
ゾルゲと尾崎、淡々と最期
您只需要确保您生成的任何文本输出都以合适的编码(例如utf8)存储,并且用于显示它的字体支持这些字形!
答案 1 :(得分:0)
我有没见过任何地方写的Apache Tika 不支持中文和日文等外语。但是在查看以下 Apache Tika源文件时,我找不到这两种语言。
但是,您仍然可以尝试使用与用您的中文Doc文件进行测试的五分钟用户指南中讨论的相同方式实施