gpt4 book ai didi

javascript - 当某些字母发生变化时,如何在复数中找到单数?最好的方法是什么?

转载 作者:行者123 更新时间:2023-12-04 12:13:24 27 4
gpt4 key购买 nike

当某些字母发生变化时,如何在复数中找到单数?
以下情况:

  • 德语单词Schließfach是一个密码箱。
  • 复数是Schließfächer.

  • 如您所见,这封信 a已更改 ä .出于这个原因,第一个单词不再是第二个单词的子字符串,它们在“正则表达式技术上”是不同的。
    也许我在下面选择的标签不在正确的 Angular 落。也许正则表达式不适合我。我看过 naturaljs ( natural.NounIflector() ) 为英语单词提供了开箱即用的功能。也许德语也有同样的解决方案?
    最好的方法是什么,如何在德语中找到复数形式的单数?

    最佳答案

    我曾经必须构建一个文本处理器来解析多种语言,包括非常随意到非常正式的语言。要确定的一件事是某些词是否相关(例如标题中与事物列表相关的名词 - 有时用复数形式标记。)
    IIRC,在我们支持的所有语言中,70-90% 的单数和复数单词形式的“Levenshtein 距离”小于 3 或 4。(最终添加了几个字典以提高准确性,因为仅“距离”就会产生许多误报。)
    另一个有趣的发现是,单词越长,3 或更少的距离就越有可能意味着含义上的关系。
    这是我们使用的库的示例:

    const fastLevenshtein = require('fast-levenshtein');

    console.log('Deburred Distances:')
    console.log('Score 1:', fastLevenshtein.get('Schließfächer', 'Schließfach'));
    // -> 3
    console.log('Score 2:', fastLevenshtein.get('Blumtach', 'Blumtächer'));
    // -> 3
    console.log('Score 3:', fastLevenshtein.get('schließfächer', 'Schliessfaech'));
    // -> 7
    console.log('Score 4:', fastLevenshtein.get('not-it', 'Schliessfaech'));
    // -> 12
    console.log('Score 5:', fastLevenshtein.get('not-it', 'Schiesse'));
    // -> 8


    /**
    * Additional strategy for dealing with other various languages:
    * "Deburr" the strings to omit diacritics before checking the distance:
    */

    const deburr = require('lodash.deburr');
    console.log('Deburred Distances:')
    console.log('Score 1:', deburr(fastLevenshtein.get('Schließfächer', 'Schließfach')));
    // -> 3
    console.log('Score 2:', deburr(fastLevenshtein.get('Blumtach', 'Blumtächer')));
    // -> 3
    console.log('Score 3:', deburr(fastLevenshtein.get('schließfächer', 'Schliessfaech')));
    // -> 7


    // Same in this case, but helpful in other similar use cases.

    关于javascript - 当某些字母发生变化时,如何在复数中找到单数?最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64805354/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com