0

我们正在尝试按照这个问题中的代码使用 BreakIterator 将日语句子分解成单词。此代码仅适用于问题中给出的文本,当我们尝试给出不同的文本时,例如“速い茶色のキツネは慵懒な犬を飞び越えます”时,它无法破坏单词。

可能是什么问题?

4

1 回答 1

1

BreakIterator.getSentenceInstance(Locale.JAPAN)这个问题中,将日语脚本分解为句子,而不是单词。通常,日语的书写没有标点符号来分隔单词。

您必须使用形态分析器将句子分解为单词。例如,您可以使用TinySegmenter 的 Java 端口

import java.util.List;
import jp.toastkid.libs.tinysegmenter.TinySegmenter;

public class Test {
  public static void main(String[] args) {
      TinySegmenter ts = TinySegmenter.getInstance();
      List<String> list = ts.segment("速い茶色のキツネは怠惰な犬を飛び越えます。&quot;);
      System.out.println(String.join(" | ", list));
      // You will get "速い | 茶色 | の | キツネ | は | 怠惰 | な | 犬 | を | 飛び越え | ます"
  }
}
于 2021-05-20T17:23:45.353 回答