Существует ли свободная библиотека для морфологического анализа немецкого языка?

Вам нужна функция для сравнения двух объектов, затем вы можете отфильтровать найденные объекты:

var object1 = [{"number":1111,"test":0,"low":2131},{"number":1234,"test":0,"low":2684},{"number":4214,"test":0,"low":6345}];
var object2 = [{"number":1234,"test":0,"low":2684}];

const objectsEqual = (o1, o2) =>
    Object.keys(o1).length === Object.keys(o2).length 
        && Object.keys(o1).every(p => o1[p] === o2[p]);

var res = object1.filter(o1 => !object2.some(o2 => objectsEqual(o1, o2)));

console.log(res);

Если [ 112] - это уникальный идентификатор объекта, который вы можете просто отфильтровать:

var object1 = [{"number":1111,"test":0,"low":2131},{"number":1234,"test":0,"low":2684},{"number":4214,"test":0,"low":6345}];
var object2 = [{"number":1234,"test":0,"low":2684}];

var res = object1.filter(o1 => !object2.some(o2 => o1.number === o2.number));

console.log(res);

8
задан Wolfgang Fahl 6 October 2014 в 15:09
поделиться

3 ответа

Я думаю, что Вы ищете "алгоритм стемминга".

Подход Martin Porter известен среди лингвистов. Стеммер Портера является в основном алгоритмом разделения аффикса, объединенным с несколькими правилами замены для тех особых случаев.

Большинство стеммеров поставляет основы, которые являются лингвистически "неправильными". Например: и "красивый" и "красота" может привести к основе "beauti", который, конечно, не является реальным словом. Это не имеет значения, тем не менее, при использовании тех основ для улучшения результатов поиска в информационно-поисковых системах. Lucene идет с поддержкой стеммера Портера, например.

Носильщик также создал простой язык программирования для разработки стеммеров, названных Снежком.

Существуют также стеммеры для немецкого языка, доступного в Снежке. Версия C, сгенерированная из источника Снежка, также доступна на веб-сайте, наряду с объяснением простого текста алгоритма.

Вот немецкий стеммер в Снежке: http://snowball.tartarus.org/algorithms/german/stemmer.html

При поиске соответствующей основы слова, поскольку Вы нашли бы его в словаре, наряду с информацией со стороны речи, Вы должны Google для "лемматизации".

7
ответ дан 5 December 2019 в 07:13
поделиться

Взгляните на Leo. Они предлагают данные, которые Вы после, возможно, они дают Вам некоторое представление.

1
ответ дан 5 December 2019 в 07:13
поделиться

Я не думаю, что это может быть сделано без словаря.

Основанные на правилах подходы неизменно споткнутся за вещи как

gegessen-> Эссен
gegangen-> angen

(отметьте людям, которые не говорят на немецком языке: правильное решение во втором случае является "gehen").

2
ответ дан 5 December 2019 в 07:13
поделиться