Un motor de cautare modular, open-source pentru lumea noastra.

Pelias este un geocoder alimentat complet de date deschise, disponibil gratuit pentru toata lumea.

Instalare locala · Serviciu web Cloud · Documentatie · Chat comunitar

Ce este Pelias?

Pelias este un motor de cautare pentru locuri din intreaga lume, alimentat de date deschise. Transforma adresele si numele locurilor in coordonate geografice si transforma coordonatele geografice in locuri si adrese. Cu Pelias, puteti transforma cautarile locurilor utilizatorilor dvs. in geodate actionabile si sa va transforme geodatele in locuri reale.

Credem ca datele deschise, open source si strategia deschisa castiga solutiile proprietare din orice parte a stivei si dorim sa ne asiguram ca serviciile pe care le oferim sunt in conformitate cu aceasta viziune. Credem ca un geocoder deschis se imbunatateste pe termen lung numai daca comunitatea poate incorpora cunostinte locale cu adevarat reprezentative.

Un motor de clasificare a limbajului natural pentru geocodificare.

Aceasta biblioteca contine „blocuri de constructie” primitive care pot fi compuse impreuna pentru a produce un analizor de limbaj natural puternic si flexibil.

Proiectul a fost conceput si construit pentru a functiona cu geocoderul Pelias, deci vine la pachet cu un parser numit AddressParser care poate fi inclus in alte proiecte npm independente de Pelias.

De asemenea, este posibil sa modificati configuratia AddressParser, dictionarele sau semantica. De asemenea, puteti crea cu usurinta un parser complet nou pentru a se potrivi propriului domeniu.

Exemplu AddressParser

30 w 26 st nyc 10010 (0,95) ➜ [{numar de casa: ’30’}, {street: ‘w 26 st’}, {locality: ‘nyc’}, {code postal: ‘10010’}]

Interfete de aplicatie

Puteti accesa biblioteca prin intermediul a trei interfete diferite:

  • toate partile bazei de cod sunt disponibile in javascript prin npm
  • pe linia de comanda prin intermediul nodului script bin / cli.js
  • printr-un serviciu web prin serverul nodului / scriptul http.js

serviciul web ofera o demonstratie interactiva la adresa URL / parser / parse

Pornire rapida

O modalitate rapida si usoara de a incepe cu biblioteca este utilizarea interfetei din linia de comanda:

nod nod / cli.js West 26th Street, New York, New York, 10010

Va rugam sa consultati captura de ecran CLI de mai sus pentru o referinta vizuala.

Tokenizarea

Tokenizarea este procesul de divizare a textului in cuvinte individuale.

Procesul de impartire utilizat de motor mentine pozitiile jetonului, deci este capabil sa „aminteasca” unde se afla fiecare caracter in textul de intrare original.

Tokenizarea este colorata in albastru pe linia de comanda.

madres viciosas porno español creampie
follada en la playa porno caca
michelle jenner desnuda porno gitanas españolas
porno gay violado porno suizo
tetas saltarinas follando en el trastero
abuelas ardientes mi mujer es muy puta
pillados follando infraganti orgias con abuelas
subporno madura en la playa
parejas pilladas en la calle abuelas sexi
videos porno online sexo gratis porno
creampie abuelas pajas pollones
maduras en playas nudistas familia española follando
vidio xxxx porno viejas alemanas
porno interactivo gratis pierre wodman
videos xxx violadas tetas en las playas
gordibuenas españolas videos porno maduras españa
hentai castellano paginas videos porno gratis
sexporn incestos madres hijos
porno caliente videos de zofilia
porno violacion gay la engaña para follar

Span

Cel mai primitiv element se numeste span, acesta este in esenta doar un singur sir de text cu unele metadate atasate.

Termenii cuvant, fraza si sectiune (explicati mai jos) sunt toti doar moduri de utilizare a unui interval.

Limitele sectiunii

Unele analize cum ar fi libpostal ignora caractere precum virgula, fila, linie noua si citat.

Desi este nerealist sa ne asteptam ca virgulele sa fie intotdeauna prezente, este foarte util sa le inregistram pozitiile atunci cand sunt.

Aceste pozitii la granita ajuta la evitarea erorilor de analiza pentru interogari precum Main St, East Village fiind analizate ca Main St East in Village.

Odata stabilite sectiunile, nu exista „sangerare” de informatii intre sectiuni, evitand problema de mai sus.

Impartirea cuvintelor

Fiecare sectiune este apoi impartita in cuvinte individuale, in mod implicit, aceasta considera pur si simplu spatiul alb ca o limita de cuvant.

Conform sectiunii, pozitiile initiale ale jetonului sunt mentinute.

Generarea frazelor

Mai multi termeni precum „New York City” includ mai multe cuvinte, aceste jetoane cu mai multe cuvinte sunt numite fraze.

Pentru a putea clasifica termenii frazelor, sunt generate permutari ale cuvintelor adiacente.

Generarea frazelor se realizeaza pe sectiune, deci nu va genera o fraza care contine cuvinte din mai multe sectiuni.

Generarea frazelor este controlata de o configuratie care specifica lucruri precum cantitatea minima si maxima de cuvinte permise intr-o fraza.

Grafic Token

Se utilizeaza un grafic pentru a asocia elemente de cuvant, fraza si sectiune.

Graficul are forma libera, deci este usor sa adaugati o noua relatie intre termeni in viitor, dupa cum este necesar.

Exemplu de grafic:

// gasiti cuvantul urmator in aceasta sectiune word.findOne („urmatorul”) // gasiti toate cuvintele din aceasta fraza fraza. findAll („copil”)

Clasificare

Clasificarea este procesul de stabilire a faptului ca un cuvant sau o expresie reprezinta un „concept” (cum ar fi un nume de strada).

Clasificarea se poate baza pe:

  • Potrivirea dictionarului (de obicei cu normalizarea aplicata)
  • Potrivirea tiparului (cum ar fi expresiile regulate)
  • Potrivire compusa (cum ar fi pozitionarea relativa)
  • Apeluri API externe (cum ar fi apelarea altor servicii)
  • Alte tehnici de potrivire semantica

Clasificarea este colorata in verde si rosu pe linia de comanda.

Tipuri de clasificatori

Biblioteca vine cu trei clasificatoare generice care pot fi extinse pentru a crea un nou clasificator:

  • WordClassifier
  • PhraseClassifier
  • SectionClassifier

Clasificatoare

Biblioteca este livrata la pachet cu o serie de clasificatoare livrate.

Le puteti gasi in directorul / classifier, clasificatorii pe baza de dictionar isi stocheaza de obicei datele in directorul / resources.

Exemplu al unora dintre clasificatorii inclusi:

// clasificatori de cuvinte CasaNumarClasificator Cod postalClasificator StradaPrefixClasificator StradaSufixClasificator CompusStreetClasificator DirectionalClasificator OrdinalClasificator StopWordClasificator // fraza clasificatori IntersectieClasificator PersoanaClasificator DateNumeClasificator NumeClasificator PersonalClasificatorClasificatorClasificatorClasificatorClasificatorClasificator

Rezolvatori

Rezolvarea este procesul final, in care solutiile sunt generate pe baza tuturor clasificarilor care au fost facute.

Fiecare analiza poate contine mai multe solutii, fiecare este prevazut cu un scor de incredere si este afisat sortat de la solutia cu cel mai mare punctaj la cel mai mic punctaj.

Nucleul acestui proces este modulul ExclusiveCartesianSolver.

Acest rezolvator genereaza toate permutarile posibile ale diferitelor clasificari, avand in vedere:

  • asigurati-va ca aceeasi pozitie de span nu este utilizata de mai multe ori
  • asigurati-va ca aceeasi clasificare nu este utilizata de mai multe ori.

Dupa ce ExclusiveCartesianSolver a rulat, exista solutii suplimentare care pot:

  • filtreaza solutiile pentru a elimina neconcordantele
  • adaugati solutii noi pentru a oferi functionalitati suplimentare (cum ar fi intersectiile)

Masti de solutie

Este posibil sa se produca o masca simpla pentru orice solutie generata, acest lucru este util pentru a compara solutia cu textul original:

VVV VVVV NN SSSSSSS AAAAAA PPPPP Foo Cafe 10 Main St London 10010 Earth

Va rugam sa fortati si sa trageti cererea impotriva masterului din amonte pe o ramura de caracteristici. Te rog frumos; furnizati teste unitare.

Teste unitare

Puteti rula suita de testare unitara utilizand comanda:

Integrare continua

Travis testeaza fiecare versiune impotriva tuturor versiunilor Node.js acceptate.

Versionare

Ne bazam pe versiunea semantica si Greenkeeper pentru a mentine versiunile noastre de module si dependente.