Skip to content

Commit

Permalink
Merge pull request #10 from pelias/joxit/person-composite-classifier
Browse files Browse the repository at this point in the history
Add person composite classifier
  • Loading branch information
missinglink authored May 8, 2019
2 parents 8431eeb + e96e12a commit 0417f6f
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 0 deletions.
88 changes: 88 additions & 0 deletions classifier/scheme/person.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
const PersonClassification = require('../../classification/PersonClassification')
const GivenNameClassification = require('../../classification/GivenNameClassification')

module.exports = [
{
// Anne Marie
confidence: 0.25,
Class: GivenNameClassification,
scheme: [
{
is: ['GivenNameClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['GivenNameClassification'],
not: ['StreetClassification', 'StreetPrefixClassification', 'StopWordClassification']
}
]
},
{
// Georges Bizet
confidence: 0.5,
Class: PersonClassification,
scheme: [
{
is: ['GivenNameClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['SurnameClassification'],
not: ['StreetClassification', 'StreetPrefixClassification', 'StopWordClassification']
}
]
},
{
// Rose de Lima
confidence: 0.5,
Class: PersonClassification,
scheme: [
{
is: ['GivenNameClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['StopWordClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['SurnameClassification'],
not: ['StreetClassification', 'StreetPrefixClassification', 'StopWordClassification']
}
]
},
{
// Unknown surname
confidence: 0.1,
Class: PersonClassification,
scheme: [
{
is: ['GivenNameClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['AlphaClassification'],
not: ['StreetClassification', 'StreetPrefixClassification', 'StopWordClassification']
}
]
},
{
// Unknown surname
confidence: 0.1,
Class: PersonClassification,
scheme: [
{
is: ['GivenNameClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['StopWordClassification'],
not: ['StreetClassification', 'IntersectionClassification']
},
{
is: ['AlphaClassification'],
not: ['StreetClassification', 'StreetPrefixClassification', 'StopWordClassification']
}
]
}
]
1 change: 1 addition & 0 deletions parser/AddressParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class AddressParser extends Parser {
new WhosOnFirstClassifier(),

// composite classifiers
new CompositeClassifier(require('../classifier/scheme/person')),
new CompositeClassifier(require('../classifier/scheme/street')),
new CompositeClassifier(require('../classifier/scheme/intersection'))
],
Expand Down
20 changes: 20 additions & 0 deletions test/address.fra.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,26 @@ const testcase = (test, common) => {
assert('Avenue Aristide Briand', [
{ street: 'Avenue Aristide Briand' }
], true)

assert('Rue Henri Barbusse Paris France', [
{ street: 'Rue Henri Barbusse' }, { locality: 'Paris' }, { country: 'France' }
], true)

assert('Rue du Général Leclerc Dunkerque France', [
{ street: 'Rue du Général Leclerc' }, { locality: 'Dunkerque' }, { country: 'France' }
], true)

assert('Avenue de Sainte Rose de Lima', [
{ street: 'Avenue de Sainte Rose de Lima' }
], true)

assert('Rue du Capitaine Galinat Marseille France', [
{ street: 'Rue du Capitaine Galinat' }, { locality: 'Marseille' }, { country: 'France' }
], true)

assert('Rue Jean Baptiste Clément', [
{ street: 'Rue Jean Baptiste Clément' }
], true)
}

module.exports.all = (tape, common) => {
Expand Down

0 comments on commit 0417f6f

Please sign in to comment.