2009-11-04 5 views
6

Buduję funkcję "miałeś na myśli" w wewnętrznej wyszukiwarce, używając aspell i php (php-pspell).Jak używać znaków specjalnych w słowniku niestandardowym aspell?

Mam katalog produktów i chcę, aby nazwy tych produktów były również słowami w słowniku, więc "masz na myśli" może sugerować.

Problemem jest to, że gdy próbuję stworzyć słownik użytkownika z funkcjami PHP pspell, otrzymuję błędy podczas słowa zawierają znaki, które nie należą do zakresu AZ, jak numery, hifens itp

Na przykład :

iPhone 3GS: iPhone dodaje się płynnie, ale 3GS nie jest

blu-ray: nie można dodawać ze względu na -

Czy jest możliwe dodanie tego rodzaju słowo w słownik? Lub aspell po prostu ich nie akceptujesz?

+0

Mam podobny problem: nie mogę dodać niemieckiego słowa "Künstliche" do innego angielskiego słownika osobistego.Aspell narzeka: "Postać (U + BC) może nie pojawić się w środku słowa" nawet jeśli korzystam z opcji "-d en-w_accents --encoding = utf-8" –

Odpowiedz

0

Najlepszym sposobem na to jest zastąpienie znaków specjalnych, w tym spacji, za pomocą sekwencji klawiszy. powiedz xxx. Będziesz musiał to zrobić dla wszystkich postaci spoza tych, które akceptuje aspell.

2

Jeden resource, który może okazać się pomocny. Powinieneś być w stanie dodać wyrazy ze znakami specjalnymi konfigurując swoją datafile języka, ale jest caviat:

Jednak należy pamiętać, że dodawanie znaków specjalnych może mieć niezamierzone konsekwencje ze względu na ograniczenia Aspell. Na przykład, jeśli -' was accepted as a middle character, then every word with a - "w nim zostanie oznaczony jako błąd w pisowni, chyba że to dokładne słowo znajduje się w słowniku, nawet jeśli obie części znajdują się w słowniku. Ponadto, mając numer .' as an end character will cause the. " być częścią wszelkich błędnie napisanych słów. Co może być bardzo denerwujące, jeśli źle wypiszesz słowo na końcu zdania.

+0

Czy możesz opisać szczegółowo, jak dodać niemiecki słowo "Künstliche" do innego angielskiego słownika osobistego? –

0

Załóżmy, że twoim językiem jest angielski ("en"), a następnie znajdź plik en.dat w instalacji aspell. en.dat to plik danych językowych, a każdy język ma swój własny plik danych o nazwie <lang>.dat. Plik danych powinien być obecny w następującej lokalizacji:

/usr/lib64/aspell/en.dat 

Teraz otwórz ten plik do edycji:

vi /usr/lib64/aspell/en.dat 

Pod koniec tego pliku należy dodać następujący wiersz:

special ' -*- 

special jest słowem kluczowym, które mówi aspell, że następujące znaki należy traktować jako znaki specjalne. Format dodawania znaków specjalnych to:

char jest literą, która nie jest literą. początek, środek, koniec to "-" lub "*". Gwiazdka na początek oznacza, że ​​postać może rozpocząć słowo, a "-" oznacza, że ​​nie może. To samo dotyczy środka i końca. Pełny artykuł: http://www.webspeaks.in/2015/01/adding-special-characters-in-aspell-dictionary-for-php.html

Powiązane problemy