Egyéb nyelvi és unicode-szempontok

Ez a témakör az agglutinatív nyelvek és a Unicode helyettesítő párok alapvető szempontjait ismerteti, valamint azt, hogy a helyettesítő párok használatával kiterjeszthető-e a Unicode karakterkészlet a különböző karakterkészletek elhelyezésére. Ez a témakör azt is ismerteti, hogyan azonosítják a szótörések a szövegben lévő kifejezéseket, és hogyan kezelik a nem törhető szóközöket, és hogyan kezelik a szóhatárolók és az ősök a számokat és dátumokat, az összetett szavakat, az összetett kifejezéseket, a speciális szavakat és karaktereket, a betűszókat és a rövidítéseket, valamint a nagybetűket.

Ez a témakör a következőképpen van rendszerezve:

Kifejezésazonosítás

A kifejezések olyan szavak vagy szavak egy csoportja, amelyeket egy vagy több más módosít. A kifejezéseket nehéz következetesen azonosítani, mert ugyanaz a módosító több, azonos főnévvel rendelkező kifejezésben is használható. Például: "új ház", "Parlament Háza", "új Parlament".

A Windows Search leggyakrabban lekérdezési időben használ kifejezéseket. A lekérdezési szövegben lévő kifejezések nagyobb súlyt kapnak, mint az egyes szavak. Az előző példában a "Parlament háza" című dokumentumot a dokumentum különböző pontjain a "Ház" és a "Parlament" értéknél magasabbra rangsoroljuk. Azt javasoljuk, hogy a szóhatárolók lekérdezéskor generáljanak egy kifejezést, ha a kifejezés valószínűleg megfelel legalább egy dokumentumnak.

Agglutinatív nyelvek

Az agglutinatív nyelvek kisebb alakváltások kombinációjával alkotnak szavakat összetett ötletek kifejezéséhez. Ezen alakváltások mindegyike általában egy jelentéssel vagy függvénnyel rendelkezik, és a kombinációs folyamat során megőrzi eredeti formáját és jelentését. Az agglutinatív morfológiával rendelkező nyelvek esetében, mint például a török, finn, magyar vagy koreai, több ezer űrlapot lehet létrehozni egy adott gyökérszavakhoz.

Az alábbi táblázat a finn "talo" ("ház") szóhoz tartozó felfújt űrlapok listáját mutatja be.

Szó Fordítás
Talo Ház
Taloni Házam
Talossa A házban
Talossani A házamban
Taloja Házak
Taloissa A házakban

 

Az inflektált nyelvek, például az angol, a francia és a latin, nagyon kevés lehetséges szóalaktal rendelkeznek egy gyökérszavakhoz. A felfújt nyelvekben a morfoemák befolyásolják egymást kötéskor. A legtöbb inflexiós változás megtalálható a szárban vagy a szóvégződésben. Az agglutinatív nyelvekkel ellentétben a felfújt nyelvek általában különböző függvényekkel rendelkeznek egyetlen alakváltáshoz. Egy alakváltás például meghatározhatja a számot és a kis- és nagybetűt is.

Az agglutinatív nyelvek stemmerjeinek mérlegelniük kell a teljesítmény és a pontosság közötti kompromisszumot, hogy a lehetséges szóalakok számának csak egy részhalmazát generálják.

Számok, időpontok és dátumok

A szavak megszakítóinak a számok, az időpontok és a dátumok közös formátumát kell használniuk a következetes lekérdezés megkönnyítése érdekében.

Amikor létrehoz egy szóválasztót, azt javasoljuk, hogy a szóhatároló normalizálja a számokat a "NNddDcc" mintával, ahol az NN az "NN" literális sorozat, dd a szám egész része, d a "D" szó, és cc a szám törtrésze. A szóhatárolók nem korlátozzák a számjegyek számát sem az egész számra, sem a szám törtrészére. Azt javasoljuk, hogy a szóválasztók felismerjék a pontokkal (.) és a vesszőkkel (,) elválasztott numerikus mintákat. A Windows Search például az "1000.2" és az "1.000,2" értéket is "NN1000D2" értékként jelöli.

Válasszon egy formátumot a szóhatárolóhoz és a szárhoz is. Az egy bájtos arab számokat úgy normalizálja a rendszer, hogy az ilyen űrlapokat tartalmazó lekérdezések megegyeznek a többi űrlap dokumentumaival.

Amikor létrehoz egy szóhatárolót, javasoljuk, hogy a szóhatároló mindig 24 órás ábrázolásként jelenik meg a "TThhmmss" mintával, ahol a TT a "TT" szóelőtag, óó az óra, mm a perc, ss pedig a másodperc. A Windows Search nem egyezik meg a további időegységekkel, például ezredmásodpercekkel. Az A.M. és a P.M. minták elemzése nem kötelező.

Amikor létrehoz egy szóhatárolót, javasoljuk, hogy a szóhatároló "DDyymmddd" formátumban hozzon létre dátumokat, ahol a DD a literális "DD", ééééé az évek, mm a hónapok, a dd a napok. Azt is javasoljuk, hogy a szóválasztók kétjegyű éveket tároljanak huszadik századi és huszonegyedik századi formátumban is. A szóhatárolók például a "2.2.99"-et "DD19990202" és "DD20990202" értékként jelölik. Lekérdezéskor a Windows Search a dátumot a Windows alkalmazásprogramozási felületeinek (API-k) használatával adja meg a kiszolgáló keresztátvételi dátumának meghatározásához a megfelelő formátum megjelenítéséhez, 19XX vagy 20XX.

Összetett szavak

Egyes nyelvekben, például a németben a főnevek egyszerűbb főnevekből állnak. Ezek az összetett főnevek túl specifikusak a lekérdezés ésszerű visszahívásához. A "Versicherung" ("biztosítás") lekérdezése például felbontás nélkül nem egyezik meg a "Lebensversicherungsgesellschaft" ("életbiztosítási értékesítő") kifejezéssel. Ilyen esetekben azt javasoljuk, hogy a szóhatárolók ezeket az összetett szavakat alapösszetevőkre bontják az index létrehozása és a lekérdezés ideje alatt. A német szóválasztó a "Lebensversicherungsgesellschaft" szót a "Leben", a "Versicherung" és a "Gesellschaft" összetevőkre bontja. Ugyanazt a felbontást alkalmazza a lekérdezési időpontban, valamint az egyes eredményül kapott kifejezések esetében választhatóan.

Összetett kifejezések

Egyes nyelvek, például a koreaiak, összetett kifejezéseket tartalmaznak, amelyek számos különböző módon törhetők fel. A koreai kifejezések tartalomszavakból, például főnevekből, névmásokból, igékből és melléknevekből állnak, amelyeket funkcionális szavak. A funkcionális szavak posztpozíciókban és végződésekben találhatók. A posztpozíciók a főnév vagy a névmás funkcionális szerepét jelölik egy mondatban; végződések jelzik az ige vagy melléknév funkcionális szerepét.

Egy kifejezés több elemzéssel is rendelkezhet, és minden elemzés több tartalomszavat is tartalmazhat. A megszakítónak nyelvspecifikus heurisztikusokat kell alkalmaznia annak meghatározásához, hogy kontextusból mennyi súlyt kell adni a különböző elemzéseknek. A szóhatároló az eredményként kapott összetevőszavak száma alapján meghatározhatja, hogy melyik felbontást használja. Egyes szótörések előnyben részesíthetik a hosszabb kifejezések rövid sorozatait, míg más szóválasztók a kisebb szavak hosszú sorozatait is előnyben részesíthetik.

Egy másik szempont, hogy koreai nyelven a főnevek és a névmások a megfelelő funkcionális szavak nélkül tárolhatók az indexben. A koreai egy agglutinatív nyelv, és számos szóvégződést egyesít az igékkel és melléknevekkel, hogy számtalan felfújt formát képezzen. A kifejezésekben azonosított igék és melléknevek az indexben lévő végződésekkel vannak mentve, de a szóválasztó nem hoz létre új űrlapokat.

Speciális karakterek és szavak

A speciális karakterek olyan karakterek, mint a "," "©" és "™". Ezeket a karaktereket ritkán használják a lekérdezésekben. A szóhatárolóknak speciális karaktereket kell levetkőzítenie az index létrehozásakor és a lekérdezési időpontban.

Azt javasoljuk, hogy a szóválasztók felismerjék a speciális szavakat, például a "C++", a "C#", a ".NET" osztályzatokat és a zenei jelöléseket. A szótörések nyelv heurisztikus használatával azonosíthatják a speciális szavak mintáját. A szóhatárolók olyan egyéni szótárat is használhatnak, amely felismert speciális szavakat tartalmaz.

Betűszavak és rövidítések

A szóhatároló implementálásakor figyelembe kell venni a rövidítéseket és a rövidítéseket. Sok nyelven a betűszók egyes betűi pontokkal vannak elválasztva. Időnként a nem felismert rövidítéseket vagy rövidítéseket tartalmazó szavak rövidítése is előfordul. Az "Amerikai Egyesült Államok" rövidítése lehet például "USA" vagy "USA". A Windows Searchben található szóhatárolók általában egybetűs szavakat azonosítanak zajszavakként, és helyőrzőként kezelik ezeket a szavakat a lekérdezési idő alatt. A lekérdezési idő alatt egy olyan szóhatároló, amely nem ismeri a gyakori mozaikszavakat, vagy amelyek nem ismerik fel a rövidítéseket, az "U.S.A." rövidítést "U", "S" és "A" rövidítéssé alakítja. Ez a felbontás nem biztosít elegendő információt a teljes szöveges indexben lévő szavak egyeztetéséhez, mivel a lekérdezési kifejezések zajszavak. Szóhatároló létrehozásakor azt javasoljuk, hogy a szóválasztó távolítsa el azokat a szakaszokat, amelyek elválasztják a betűszók betűit. A példában az "USA" az "USA", a lekérdezési kifejezés pedig az "USA"-t tartalmazza. Ha egy szóhatároló feldolgoz egy rövidítést, a rövidítésben szereplő időszak nem lesz EOS-törésként kezelve. Emiatt előfordulhat, hogy egy szóválasztó nem azonosítja megfelelően az EOS-törést, ha a rövidítés a mondat végén van.

Tőkésítés

A Windows Search jelenleg nem őrzi meg a nagybetűket, amikor szavakat ment a teljes szöveges indexbe. A szóhatárolók és az ősök nem módosíthatják a szavak esetét.

Nem törhető szóközök

Ha szóhatárolót hoz létre, azt javasoljuk, hogy győződjön meg arról, hogy a szóhatároló szóelválasztóként kezeli a nem törhető szóközöket. Azt is javasoljuk, hogy a szóhatároló alternatív formákat hozzon létre a szóból, nem törhető szóközökkel és anélkül. Egyes karakterek, például aláhúzásjelek, speciális karakterek, amelyek nem törhető karakterekként vannak kezelve a szöveg forrásából adódóan. A forráskód vagy fájlnevek például aláhúzásjeleket tartalmazhatnak nem törhető karakterekként.

Helyettesítő párok

A helyettesítő párok olyan karakterábrázolások a forráskódban, amelyek egyetlen karaktert jelölnek, amely két Unicode-érték sorozatából áll. Egy kódolt párban az első érték magas helyettesítő, a második pedig alacsony helyettesítő. A magas helyettesítő karakter az U+D800 és U+DBFF közötti tartomány egyik karaktere. Az alacsony helyettesítő karakter az U+DC00 és U+DFFF közötti tartományban lévő karakter. A helyettesítő párok a Unicode karakteren túlra is kiterjesztik a karakterkészletet. Azt javasoljuk, hogy a helyettesítő párok kezelésekor a szóválasztók a következő szabályokat használják:

  • A magas helyettesnek egy alacsony helyettes előtt kell lennie.
  • Az alacsony helyettesnek magas helyettest kell követnie.
  • A magas vagy alacsony helyettesítő nem megfelelő értéket a másik fele nincs értelme.

A szóválasztóknak figyelembe kell venniük a párokat, és létre kell hozniuk a párokat az indexben. További információ: helyettesítők és kiegészítő karakterek.