2009-11-04 2 views
6

Ich baue eine "meinst du" -Funktion auf einer internen Suchmaschine mit aspell und php (php-pspell).Wie verwende ich spezielle Zeichen im ASPELL-Wörterbuch?

Ich habe einen Katalog von Produkten und ich möchte, dass die Namen dieser Produkte auch Wörter im Wörterbuch sind, also kann das "hast du gemeint" vorschlagen.

Das Problem ist, dass wenn ich versuche, ein Benutzerwörterbuch mit PHP Pspell Funktionen zu erstellen, erhalte ich Fehler, wenn die Worte Zeichen enthalten, das nicht in dem az Bereich ist, wie Zahlen, hifens usw.

Zum Beispiel :

iphone 3gs: iphone glatt hinzugefügt, aber 3gs ist nicht

blu-ray: nicht wegen hinzugefügt werden kann, um die -

ist es möglich, diese Art von Wort in einem hinzuzufügen Wörterbuch? Oder akzeptiere sie einfach nicht?

+0

Ich habe ein ähnliches Problem: Ich kann ein deutsches Wort "Künstliche" zu einem ansonsten englischen persönlichen Wörterbuch nicht hinzufügen.Aspell beschwert sich "Der Charakter (U + BC) darf nicht in der Mitte eines Wortes erscheinen", auch wenn ich die Optionen "-d en-w_accents --encoding = utf-8" verwende –

Antwort

0

Der beste Weg, um dies zu tun, ist die Sonderzeichen einschließlich Leerraum mit einer Tastenfolge zu ersetzen. sagen xxx. Sie müssen das für alle Charaktere tun, die nicht von Aspel akzeptiert werden.

2

Eine resource, die sich als hilfreich erweisen kann. Sie sollten Ihre Sprache Daten-Datei durch die Konfiguration Wörter mit Sonderzeichen hinzufügen können, aber es gibt eine caviat:

aber bitte beachten Sie, dass Sonderzeichen Hinzufügen von unbeabsichtigten Folgen aufgrund der Beschränkungen von Aspell haben. Zum Beispiel, wenn die -' was accepted as a middle character, then every word with a - 'darin als ein Rechtschreibfehler gekennzeichnet wäre, es sei denn, dass das genaue Wort im Wörterbuch ist, auch wenn beide Teile im Wörterbuch sind. Auch mit einem .' as an end character will cause the. Teil von falsch geschriebenen Wörtern zu sein. Was sehr ärgerlich werden kann, wenn Sie am Ende eines Satzes ein Wort falsch schreiben.

+0

Kannst du im Detail beschreiben, wie man ein Deutsch hinzufügt Wort "Künstliche" zu einem ansonsten englischen persönlichen Wörterbuch? –

0

Angenommen, Ihre Wörterbuchsprache ist Englisch ("en"), dann finden Sie die Datei en.dat in aspell installation. en.dat ist die Sprachdatendatei und jede Sprache hat ihre eigene Datendatei mit dem Namen <lang>.dat. Die Datendatei sollte an folgenden Stelle vorhanden sein:

/usr/lib64/aspell/en.dat 

nun diese Datei zur Bearbeitung öffnen:

vi /usr/lib64/aspell/en.dat 

Am Ende dieser Datei die folgende Zeile hinzu:

special ' -*- 

special ist das Schlüsselwort, das aspell sagt, dass folgende Zeichen als Sonderzeichen zu behandeln sind. Das Format zum Hinzufügen von Sonderzeichen ist:

char ist das nicht buchstabenartige Zeichen in Frage. Anfang, Mitte, Ende sind entweder ein '-' oder ein '*'. Ein Stern für Anfang bedeutet, dass der Charakter ein Wort beginnen kann, ein "-" bedeutet, dass es nicht möglich ist. Das Gleiche gilt für Mitte und Ende. Ganzer Artikel: http://www.webspeaks.in/2015/01/adding-special-characters-in-aspell-dictionary-for-php.html

Verwandte Themen