Commit Graph

5315 Commits

Author SHA1 Message Date
Maurice Betzel
46585c89e0 Added unofficial Java language binding 2018-01-17 11:00:34 +01:00
Maurice Betzel
ebc332a311 Added unofficially supported Java language binding 2018-01-17 10:57:09 +01:00
Travis
a4793f0f79 [auto][ci skip] Adding data files from Travis build #343 2018-01-16 09:30:46 +00:00
Al
ac350d90f6 [dictionaries] adding BYP to ambiguous expansions for the Black Youth Project 2018-01-16 03:40:36 -05:00
Al
03e5e25240 [dedupe] adding a near-dupe hash which takes into account existing acronyms which may have appeared in the string, either known acronyms as defined in the dictionaries like "HS" and includes the full token in the acronym. This feature is particularly useful for public schools or other cases where the canonical string may be used i.e. "Foo High School", "Foo HS" and "FHS". It also does the same thing other acronyms that are identified by the tokenizer from the internal period structure like A.B.C. Also now allowing mixed alpha-numeric tokens to use the double metaphone encoding as well, and for numeric tokens with script=Common (digits but may also contain hyphens, etc.), the full token is included as one of the words rather than quadgrams, which don't make sense for numerics. 2018-01-16 03:38:22 -05:00
Al
0286a2fef3 [expand] for root expansions, delete ambiguous tokens only when there's a non-numeric non-phrase token present. This applies to all name components, not for components where numerics can be the root (house numbers, units, streets, etc.) 2018-01-16 03:02:26 -05:00
Al
0ee18b4f6c [dedupe] adding a function to acronyms module to detect existing/known acronyms like MS for middle school, HS for high school, etc. Forms like MS have to be deined in the dictionaries specifically but any acronym written like M.S. will be detected as such by the tokenizer 2018-01-15 23:47:16 -05:00
Al
133381f439 Merge branch 'master' of ssh://github.com/openvenues/libpostal 2018-01-14 19:40:44 -05:00
Al
c553fe81ee [dedupe] using 4-grams with no edge disambiguation in near dupe hashing of names instead of full tokens (uses the double metaphone for Latin script, 2-grams for ideographic scripts and 4-gram unicode chars for other scripts like Arabic or Cyrllic). The fully concatenated name string with no whitespace + acronyms/subacronyms now also use double-metaphone in Latin script, and are split into 4-grams. Overall this reduces the number of keys, accounts for more misspellings as well as languages with longer words such as German, and various spacing/concatenations differences in general, while still being relatively selective. Most words in Latin scripts will resolve to less than 4 characters, so this mostly affects longer words with many consonants. 4-gram blocking tends to be what's used in the literature, and works well in practice on human and venue names. This is a slight departure from said literature in that we use 4-grams of the phonetic normalization for Latin scripts. 2018-01-14 19:12:28 -05:00
Travis
c58b16e745 [auto][ci skip] Adding data files from Travis build #341 2018-01-11 23:35:43 +00:00
Al Barrentine
b2aa2e4fdd Merge pull request #299 from antimirov/master
Updating Ukrainian dictionaries, small fixes and additional variants.
2018-01-11 18:22:34 -05:00
Al
f5e41a1f57 [fix] logic in sub-acronym generation for near-dupe hashes 2018-01-11 13:15:19 -05:00
Al
6ba0403748 [dedupe] adding a near-dupe hash for acronyms both with and without stopwords. This will create basic acronyms for institutions like MoMA, UCLA, the NAACP, as well as human initials, etc. It also handles sub-acronyms, so when either at every other non-contiguous stopword (University of Texas at Austin) or punctuation (University of Texas, Austin), it cuts a new sub-acronym (so UT). All of the acronyms for Latin script use a double metaphone as well, so can potentially catch many cases. It does not handle all possible acronyms (e.g. where some of the letters are word-internal as in medical acronyms), but should do relatively well on many common variations. 2018-01-10 22:23:40 -05:00
Yevgen Antymyrov
b1f3760a81 Updating Ukrainian dictionaries, small fixes and additional variants. 2018-01-10 11:35:59 +01:00
Al
c29557c16b [expand] adding another check in root expansions, making sure we don't ignore the unmodified ambiguous phrase 2018-01-08 19:03:50 -05:00
Al
e6edf54adb [dedupe] adding a near-dupe hash for the entire name without spaces. 2018-01-08 19:02:19 -05:00
Al
66aee0fffa [expand] make street type dictionaries ignorable for venue names as well (many company names mention their address, so sort of have to apply the same rules) 2018-01-07 01:39:10 -05:00
Al
e935f2a036 [fix] need to calculate max Jaro-Winkler for other methods, so only test whether we should use it after we've cycled through all the tokens 2018-01-06 03:59:34 -05:00
Al
179e6581e5 [dedupe] for fuzzy street duplicates, using the likely dupe classification regardless of similarity if one set of tokens is fuzzily-contained within the other (the set of matches allows for words matching Jaro-Winkler/Levenshtein similarity, being out of order, etc. but not acronyms or the more flexible abbreviation detection, just abbreviations out of libpostal's dictionaries provided that the abbreviations use share the same canonical phrase with the aligned phrase in the other string) 2018-01-06 03:55:20 -05:00
Al
4356174630 [similarity] adding a match count in Soft-TFIDF to allow answering questions about subsets i.e. the set of tokens in "Park Pl" contain the set of tokens in "Park". Setting Jaro-Winkler minimum length of 4 chars on, more specific option name for possible abbeviation detection 2018-01-06 03:50:03 -05:00
Al
0cb488ecea [test] different test case for expansion, male names are overemphasized as it is 2018-01-02 19:01:58 -05:00
Al Barrentine
513fdd775f Merge pull request #297 from oschwald/greg/fix-more-leaks
Fix several more memory leaks and a segfault
2018-01-02 18:50:38 -05:00
Gregory Oschwald
2f6749fe03 Fix segfault in expand_alternative_phrase_option
string_tree_get_alternative can return NULL
2018-01-02 13:28:51 -08:00
Gregory Oschwald
18cc0e37e6 Only create parser response when it is used
Previously, an unused response would not be freed, causing a leak.
2018-01-02 11:56:02 -08:00
Gregory Oschwald
95ea873498 Fix memory leaks in test_trie
The primary motivation is to make the test suite run clean under
Valgrind so that we don't need to wade through unimportant failures.
2018-01-02 10:38:12 -08:00
Gregory Oschwald
999de2bf6a Add missing char_array_destroy when numex is invalid 2018-01-02 10:24:39 -08:00
Al
d33b6693b9 [test] adding Suite/Ste tests for root expansion bugfix 2018-01-02 03:50:23 -05:00
Al
071aee0e85 [fix] in root expansions, removing phrases that are invalid for the given components if there are other ignorable components 2018-01-02 03:49:52 -05:00
Al
d8a0a344cd Merge branch 'master' of ssh://github.com/openvenues/libpostal 2017-12-31 19:20:42 -05:00
Al
7651a7b9b9 [fix] fixing a couple of warnings in dedupe/near_dupe 2017-12-31 19:20:17 -05:00
Travis
95ea250cb1 [auto][ci skip] Adding data files from Travis build #330 2017-12-31 22:30:34 +00:00
Al Barrentine
8a917d8594 Merge pull request #294 from openvenues/lieu_api
Near-duplicate detection and address deduping
2017-12-31 17:00:03 -05:00
Al
3bdb8c8630 [similarity] max out the Jaro-Winkler shared prefix at 4 characters in accordance with Winkler's paper 2017-12-31 13:23:54 -05:00
Al
4e32565746 [dedupe] fixing toponym matching for city-equivalents, adding the LIBPOSTAL_ADDRESS_ANY component in each function call so it can be removed as needed. 2017-12-30 18:05:46 -05:00
Al
34c3ee7f7a [fix] update to struct 2017-12-30 03:24:39 -05:00
Al
34fe7ec305 [expand] adding a few of the address phrase checks to the expand header 2017-12-30 02:34:06 -05:00
Al
668e467967 [dedupe/test] checking for NULL in near_dupe test program 2017-12-30 02:33:33 -05:00
Al
3263c84b32 [api] using uint32_t for geohash precision option 2017-12-30 02:32:35 -05:00
Al
434bbd4dc2 [fix] removing unused vars 2017-12-30 02:31:43 -05:00
Al
86d5eca521 [api] checking for NULL responses in the cstring_array methods before converting them to char arrays 2017-12-30 02:31:25 -05:00
Al
c48c2b778c [dedupe] fixes to near dupe hashing, geohash lengths, cutting off name hashing at 50 unique tokens, fixing memory leaks, checking for valid geo components and returning NULL if one of the required fields isn't present 2017-12-30 02:28:38 -05:00
Al
6dff154a99 [api] adding APIs for getting default options and using a consistent naming convention 2017-12-29 17:48:54 -05:00
Al
53543be5a5 [build] adding new source files to Makefile for the lieu APIs 2017-12-29 17:46:35 -05:00
Al
8495cda1eb [api] adding pairwise-dupe functions/structs to the public header 2017-12-29 13:48:54 -05:00
Al
cadf52d19f [fix] making a few internal functions static 2017-12-29 04:50:08 -05:00
Al
098babfdee [dedupe] adding the core pairwise deduping module which ties together most of the work on this branch. Includes simple phrase-aware exact deduping methods, with per-component variations as to whether e.g. a root expansion match counts as an exact duplicate or not (in a secondary unit, "No. 2" and "Apt 2" can be considered an exact match in English whereas we wouldn't want to make that kind of assumption for street e.g. "Park Ave" and "Park Pl"). The API is fairly low-level at present, and may require a few calls. Notably, we leave the TFIDF scores or other weighting schemes to the client. Since each component gets its own dupe classification, it leaves the door open for doing more specific checks around e.g. compound house numbers/ranges in the future. 2017-12-29 04:48:00 -05:00
Al
1f1412c120 [api] adding libpostal_place_languages method to public API for classifying languages consistently from components (may need to make several calls using the same languages and don't necessarily want the language classifier to be run on house numbers when we already know the languages from e.g. the street name - this provides a simple window into the language classifier focused on the entire address/record 2017-12-29 03:32:41 -05:00
Al
1d1ce10fad [similarity] adding a string array version of Jaccard similarity that creates the string sets internally for convenience 2017-12-29 03:08:48 -05:00
Al
c5ad080fb0 [similarity] moving stopword tokens array to a separate function in acronym token alignments 2017-12-29 02:42:22 -05:00
Al
f1e6886536 [similarity/dedupe] adding options for acronym alignments and address phrase matches in Soft-TFIDF. Acronym alignments will give higher similarity to NYU vs. "New York University" whereas phrase matches would match known phrases that share the same canonical like "Cty Rd" vs. "C.R." vs. "County Road" within the Soft-TFIDF similarity calculation. 2017-12-29 02:39:49 -05:00