如何在Java中搜索类似的单词和短语?

时间:2017-04-21 12:13:52

标签: java search fuzzy-search

我正在开发一个项目,它将比较两个字符串并挑选出类似的短语和单词。

例如,请阅读以下两个问题。

问题1:这部小说的主角经常在Celeste经营的咖啡馆吃饭。它打开主角参加他母亲的葬礼,并没有表现出悲伤的迹象。 10分,Meursault在阿尔伯特加缪的小说中拍摄了阿拉伯人的海滩?

问题2:本书中的人物与他的朋友Emmanuel一起跳上消防车,经常在Celeste's吃午饭。它开始于主角的母亲的葬礼,在那里他不会哭。 10点,将这部小说命名为阿尔伯特·加缪(Albert Camus),因为无意中射杀了阿拉伯人而导致梅尔索尔因死亡而死亡。

我希望节目能够选出“Celeste”以及这部小说“从葬礼开始”的事实。我怎么做到这一点?我只是想寻找一些资源。 (我正在使用Java)。

1 个答案:

答案 0 :(得分:0)

希望这对你的案子有用。试试吧:

public void pringCompare(){

    String s = "This is a sample sentence.";
    String s2 = "This is not the previous, but similar";
    String[] words = s.split("\\s+");
    for (int i = 0; i < words.length; i++) {
        // You may want to check for a non-word character before blindly
        // performing a replacement
        // It may also be necessary to adjust the character class
        words[i] = words[i].replaceAll("[^\\w]", "");
    }

    List result = Arrays.asList(words).stream().filter(x->{
        System.out.println(s2+" "+x);
        return s2.contains(x);
        }).collect(Collectors.toList());
    result.forEach(System.out::println);
}