Skip to content

Commit

Permalink
update language_classifier branch
Browse files Browse the repository at this point in the history
  • Loading branch information
missinglink committed Jan 22, 2025
1 parent 5ef9546 commit c872942
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 3 deletions.
4 changes: 3 additions & 1 deletion binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
},
{
"target_name": "language_classifier",
"sources": [ "src/language_classifier.cc" ],
"sources": [
"src/language_classifier.cc"
],
"libraries": [
"-lpostal", "-L/usr/local/lib"
],
Expand Down
3 changes: 2 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

module.exports = {
expand: require('bindings')('expand'),
parser: require('bindings')('parser')
parser: require('bindings')('parser'),
language_classifier: require('bindings')('language_classifier').language_classifier
}
7 changes: 6 additions & 1 deletion src/language_classifier.cc
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,12 @@ void init(v8::Local<v8::Object> exports) {
return;
}

v8::Local<v8::Context> context = exports->CreationContext();
// Check Node.js version
#if NODE_MAJOR_VERSION >= 16
v8::Local<v8::Context> context = exports->GetCreationContext().ToLocalChecked();
#else
v8::Local<v8::Context> context = exports->CreationContext();
#endif

exports->Set(
context,
Expand Down
83 changes: 83 additions & 0 deletions test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,86 @@ describe('parser', function() {
});
})
})

describe('language_classifier', function() {
it('should classify phrases', function() {
const cases = [
{
text: 'street',
expected: [{ language: 'en', probability: 0.9975550392228959 }]
},
{
text: 'calle',
expected: [{ language: 'es', probability: 0.9948278315613933 }]
},
{
text: '200 santa monica pier santa monica coahuila 90401 usa',
expected: [{ language: 'es', probability: 0.9889375382113144 }]
},
{
text: '200 santa monica pier santa monica compania 90401 usa',
expected: [
{ language: 'es', probability: 0.6896583016342134 },
{ language: 'it', probability: 0.12355268595569942 },
{ language: 'en', probability: 0.09448842175870104 },
{ language: 'pt', probability: 0.09152280207660235 }
]
},
{
text: '200 santa monica pier santa monica compania anonima 90401 usa',
expected: [
{ language: 'en', probability: 0.39249744852100377 },
{ language: 'pt', probability: 0.27690798537637573 },
{ language: 'es', probability: 0.2631088374468901 },
{ language: 'it', probability: 0.06642801798298495 }
]
},
{
text: '200 santa monica pier santa monica calle 90401 usa',
expected: [
{ language: 'es', probability: 0.9332794851572307 },
{ language: 'it', probability: 0.0653229950496308 }
]
},
{
text: '200 santa monica pier santa monica ca 90401 usa',
expected: [
{ language: 'es', probability: 0.6860753090491215 },
{ language: 'it', probability: 0.16420520901155986 },
{ language: 'en', probability: 0.08797427320205269 },
{ language: 'pt', probability: 0.061694606284459816 }
]
},
{
text: '200 santa monica pier santa monica casa 90401 usa',
expected: [
{ language: 'it', probability: 0.7099331948983176 },
{ language: 'pt', probability: 0.1484441794525817 },
{ language: 'en', probability: 0.09171194632862785 }
]
},
{
text: '200 santa monica pier santa monica cagliari 90401 usa',
expected: [{ language: 'it', probability: 0.9409304710772296 }]
},
{
text: '200 santa monica pier santa monica california 90401 usa',
expected: [
{ language: 'en', probability: 0.529208078531959 },
{ language: 'pt', probability: 0.26387306487348855 },
{ language: 'es', probability: 0.20130465470054235 }
]
},
{
text: '200 santa monica pier santa monica companhia anonima 90401 usa',
expected: [
{ language: 'pt', probability: 0.8631314862441015 },
{ language: 'en', probability: 0.1090210811124842 }
]
}
];
for (const c of cases) {
assert.deepEqual(postal.language_classifier(c.text), c.expected, c.text);
}
});
})

0 comments on commit c872942

Please # to comment.