Skip to content

Commit c872942

Browse files
committed
update language_classifier branch
1 parent 5ef9546 commit c872942

File tree

4 files changed

+94
-3
lines changed

4 files changed

+94
-3
lines changed

binding.gyp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
},
2929
{
3030
"target_name": "language_classifier",
31-
"sources": [ "src/language_classifier.cc" ],
31+
"sources": [
32+
"src/language_classifier.cc"
33+
],
3234
"libraries": [
3335
"-lpostal", "-L/usr/local/lib"
3436
],

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
module.exports = {
33
expand: require('bindings')('expand'),
4-
parser: require('bindings')('parser')
4+
parser: require('bindings')('parser'),
5+
language_classifier: require('bindings')('language_classifier').language_classifier
56
}

src/language_classifier.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,12 @@ void init(v8::Local<v8::Object> exports) {
5454
return;
5555
}
5656

57-
v8::Local<v8::Context> context = exports->CreationContext();
57+
// Check Node.js version
58+
#if NODE_MAJOR_VERSION >= 16
59+
v8::Local<v8::Context> context = exports->GetCreationContext().ToLocalChecked();
60+
#else
61+
v8::Local<v8::Context> context = exports->CreationContext();
62+
#endif
5863

5964
exports->Set(
6065
context,

test/index.test.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,86 @@ describe('parser', function() {
5656
});
5757
})
5858
})
59+
60+
describe('language_classifier', function() {
61+
it('should classify phrases', function() {
62+
const cases = [
63+
{
64+
text: 'street',
65+
expected: [{ language: 'en', probability: 0.9975550392228959 }]
66+
},
67+
{
68+
text: 'calle',
69+
expected: [{ language: 'es', probability: 0.9948278315613933 }]
70+
},
71+
{
72+
text: '200 santa monica pier santa monica coahuila 90401 usa',
73+
expected: [{ language: 'es', probability: 0.9889375382113144 }]
74+
},
75+
{
76+
text: '200 santa monica pier santa monica compania 90401 usa',
77+
expected: [
78+
{ language: 'es', probability: 0.6896583016342134 },
79+
{ language: 'it', probability: 0.12355268595569942 },
80+
{ language: 'en', probability: 0.09448842175870104 },
81+
{ language: 'pt', probability: 0.09152280207660235 }
82+
]
83+
},
84+
{
85+
text: '200 santa monica pier santa monica compania anonima 90401 usa',
86+
expected: [
87+
{ language: 'en', probability: 0.39249744852100377 },
88+
{ language: 'pt', probability: 0.27690798537637573 },
89+
{ language: 'es', probability: 0.2631088374468901 },
90+
{ language: 'it', probability: 0.06642801798298495 }
91+
]
92+
},
93+
{
94+
text: '200 santa monica pier santa monica calle 90401 usa',
95+
expected: [
96+
{ language: 'es', probability: 0.9332794851572307 },
97+
{ language: 'it', probability: 0.0653229950496308 }
98+
]
99+
},
100+
{
101+
text: '200 santa monica pier santa monica ca 90401 usa',
102+
expected: [
103+
{ language: 'es', probability: 0.6860753090491215 },
104+
{ language: 'it', probability: 0.16420520901155986 },
105+
{ language: 'en', probability: 0.08797427320205269 },
106+
{ language: 'pt', probability: 0.061694606284459816 }
107+
]
108+
},
109+
{
110+
text: '200 santa monica pier santa monica casa 90401 usa',
111+
expected: [
112+
{ language: 'it', probability: 0.7099331948983176 },
113+
{ language: 'pt', probability: 0.1484441794525817 },
114+
{ language: 'en', probability: 0.09171194632862785 }
115+
]
116+
},
117+
{
118+
text: '200 santa monica pier santa monica cagliari 90401 usa',
119+
expected: [{ language: 'it', probability: 0.9409304710772296 }]
120+
},
121+
{
122+
text: '200 santa monica pier santa monica california 90401 usa',
123+
expected: [
124+
{ language: 'en', probability: 0.529208078531959 },
125+
{ language: 'pt', probability: 0.26387306487348855 },
126+
{ language: 'es', probability: 0.20130465470054235 }
127+
]
128+
},
129+
{
130+
text: '200 santa monica pier santa monica companhia anonima 90401 usa',
131+
expected: [
132+
{ language: 'pt', probability: 0.8631314862441015 },
133+
{ language: 'en', probability: 0.1090210811124842 }
134+
]
135+
}
136+
];
137+
for (const c of cases) {
138+
assert.deepEqual(postal.language_classifier(c.text), c.expected, c.text);
139+
}
140+
});
141+
})

0 commit comments

Comments
 (0)