Match aliases with only one word
This commit is contained in:
parent
9d609e6461
commit
051dac127b
2 changed files with 9 additions and 1 deletions
|
|
@ -66,12 +66,16 @@ function match (structs, candidate, threshold) {
|
||||||
)(wordValues)
|
)(wordValues)
|
||||||
|
|
||||||
// At least two name-parts must match per alias
|
// At least two name-parts must match per alias
|
||||||
|
const adequateMatch = ([aliasId, count]) => {
|
||||||
|
const alias = structs.aliasesMap.get(aliasId)
|
||||||
|
return count >= Math.min(2, alias.words.length)
|
||||||
|
}
|
||||||
const aliasIdsFromNamePart = _.flow(
|
const aliasIdsFromNamePart = _.flow(
|
||||||
_.uniqWith(_.isEqual),
|
_.uniqWith(_.isEqual),
|
||||||
_.map(_.get('aliasId')),
|
_.map(_.get('aliasId')),
|
||||||
_.countBy(_.identity),
|
_.countBy(_.identity),
|
||||||
_.toPairs,
|
_.toPairs,
|
||||||
_.filter(_.flow(_.last, _.lte(2))),
|
_.filter(adequateMatch),
|
||||||
_.map(_.first)
|
_.map(_.first)
|
||||||
)([...phoneticMatches, ...stringMatches])
|
)([...phoneticMatches, ...stringMatches])
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,9 @@ function parse (sources) {
|
||||||
entries => new Map(entries)
|
entries => new Map(entries)
|
||||||
)(individuals)
|
)(individuals)
|
||||||
|
|
||||||
|
const makeEntries = (individualId, alias) => [alias.id, alias]
|
||||||
|
const aliasesMap = new Map(mapAliases(makeEntries, individuals))
|
||||||
|
|
||||||
const getIdPairs = (individualId, alias) => [alias.id, individualId]
|
const getIdPairs = (individualId, alias) => [alias.id, individualId]
|
||||||
const idPairs = mapAliases(getIdPairs, individuals)
|
const idPairs = mapAliases(getIdPairs, individuals)
|
||||||
const aliasToIndividual = new Map(idPairs)
|
const aliasToIndividual = new Map(idPairs)
|
||||||
|
|
@ -217,6 +220,7 @@ function parse (sources) {
|
||||||
return {
|
return {
|
||||||
individuals,
|
individuals,
|
||||||
individualsMap,
|
individualsMap,
|
||||||
|
aliasesMap,
|
||||||
aliasToIndividual,
|
aliasToIndividual,
|
||||||
phoneticMap,
|
phoneticMap,
|
||||||
wordList
|
wordList
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue