Hogyan készítsünk egy index egy adott szöveget, és ez hogyan index akkor nézd

  • Jáva
  • keresési technológia
  • algoritmusok

Üdvözlet.
Kérem, segítsen a probléma megoldásában (feladat). Irányát jelzik, hogy segítsen a bölcs tanácsot.

Van egy probléma:
-egy lista a helyes neveket programok (a la sablon, minta, standard). A nevek állnak 1-6 szó
-van egy lista a szoftver címei írta a személyzet. A személyzet nem írt minta, hibáztunk az írásban a szavak önmagukban, az úgynevezett a program egyébként. Ugyanakkor továbbra is fenntartják a lényege a nevét.
Például:
standard "Programmulya plus"
munkavállaló írt „program Programmulya dokumentumok”
Mint látható, van egy csomó felesleges, de a lényeg megmarad.

Szeretnék létrehozni egy index a referencia könyvtár nevét és egyszer az index keresni betartása a felhasználó kérésére (akár van egyezés, vagy a felhasználói program a szótárban nincs jelen).
Azt hiszem, amit keresünk, bizonyos szavak kezdőcsapatban, és keresse meg a kereszteződés mérkőzést. Vagy nem?

Kérjük jelezze, hogyan lehet létrehozni egy indexet, és hogyan ez az index a keresett (algoritmus).
Tárgy bázis határozottan nem tudja, ezért kérjük, fejtse ki egyszerű szavakkal.
Írok Java.

Köszönöm a választ :)

  1. Vettem a vonalon. vonal kedves volt original_Name. alternate_name_1, alternate_name_2
  2. Emlékszem, az eredeti neve egy külön változó origName.
  3. Azt kitisztuljon a törmeléket. Ez tartalmazza az eltávolítása írásjelek, ahol én már a sorban a referencia, én csak egy „-” jelet. Kiszedtem a „stop” szót. Állj szóval úgy döntöttem át észrevételeket a meglévő szótárban. Dobtam minden szava mellett elöljárószók és kötőszók, amelyek nem voltak szemantikai terhelést. Azt volt szó, mint a „portál”, „online”, a közös rövidítés „Al”, „absz.”
  4. Eltörte a húr kulcsszó. Az egész sor, beleértve az eredeti cím.
  5. tartani HashMap csomó kulcsszót. origName. Valahol ez az úgynevezett linkek módszer.
  6. Ha a kulcs szó szerint járunk el, majd a befejező origName más szóval egy sorban.

Az így kapott „referencia” kerestem kulcsszavak megadásával a lekérdezést. Az eredmény egy lista a talált origName.
A rangsor az volt, hogy mit gondoltam volt a legnagyobb számú mérkőzést, és hitt az eredmény véletlen. Néha volt több mérkőzést ugyanazzal a bejegyzések számát. Meccsek hasonló volt értelme, de tettek valamiféle zavart. (Ez a probléma, úgy döntöttem, hogy párbeszéd az „üzemeltető” program)

Általában keresést az elfogadható.
Írtam nem a tömegek, és egy adott szervezet, így elfogadtam a tényt, hogy a hibák száma, ha megad egy keresési lekérdezés minimális lesz, és hogy a többi szó (helyesen írt) megadja a helyes eredményt.

Mindegy, van számos hibát, akkor le kell zárni, végrehajtja a legjobb algoritmusokat.
De a kerékpár sikeres volt (ami nagyon boldog vagyok).
Én továbbra is frissíteni az algoritmusokat, a másik nap vár egy adatcsomag a felhasználóktól a bejáratási programmuli :)

Valami ehhez hasonló, és én elképzeltem. Még majdnem megoldotta a problémát a „hasonlóság” szó révén unalmas összehasonlítása illő szimbólumokat (csúnya, de néhány ad eredményt. Programmulya == programulya).
És itt a kérdés. Mikor kapom meg a kulcsszó a sztringlistát standard nevek áttérek keresni a második szót. Ez a keresés ad nekem egy listát a húrok, amely megtalálható „szót kulcsszavak”.
És mi a következő lépés? Ellenőrizzük a mérkőzés minden esetben (vagy más egyezések százaléka)?

Arra gondoltam, valahogy így:
Az útmutató Van egy listát a szavak származnak a vonalak a szabványoknak. Mindegyik szó utal az eredeti szöveg.
Tegyük fel, hogy eltörtem egy felhasználó lekérdezést szavak és a szavak, mint a referencia. Az a tény, hogy én meg a szót vonal tagja könyvtár már, hogy nekem egy csipetnyi, hogy a kérelem az adatbázisban. A „nem sok értelme,” mint a „segédprogram a dokumentumok” nem adja az eredmény a mérkőzés a „Programmulya”. Vegyünk egy egyedi, mint a sorban.
Talán más szavakkal, hogy pontosan értelme, mint a „Programmulya” való hivatkozással a minősítés szerint.

Arthur. Lásd, minden esetben mi vár a bejáratnál, hogy a vonal, és a kimeneti - programok listáját hasonló nevű, valóban úgy gondolom? vagy állapot -, hogy visszatérjen egy hasonló program, amennyire csak lehetséges?

Keresés véletlenül karakter - egy nagyon rossz lehetőség, hogy őszinte legyek, az emlékezet és a sebesség garantált. Különösen lehet szó egy azonos sor karaktert, de más a sorrendben.

Uraim. „Keresés véletlenül karakter - egy nagyon rossz lehetőség, hogy őszinte legyek, a probléma a sebesség és memória garantálja Különösen lehet szó egy azonos sor karaktert, de eltérő sorrendet ..”
- Teljesen egyetértek. Ha nem foglalkoznak intelligensebb lehetőségek, nem lesz semmi :) Szerencsére mennyiségek nem túl nagy.

„Arthur: Nézd, minden esetben mi vár a bejáratnál, hogy a vonal, és a kimeneti - programok listáját hasonló nevű, azt hiszem, jobb vagy állapot -, hogy visszatérjen egy hasonló program, amennyire csak lehetséges?”
- békés úton, a kimeneti elvárom akár a mondat: „Ez a program nem a könyvtárban”, a leginkább hasonló.

Kapcsolódó cikkek