Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut

Unicode schwierig

Es gibt verschiedene Schwierigkeiten beim Umgang mit Unicode. Ich habe in letzter Zeit viel gelernt. Daher können Unicode-Anfänger im Folgenden schreckliche Fehler machen:

Ich wusste um die verwirrenden Punkte der Unicode-Normalisierungsunterschiede (NFC, NFD, NFKC, NFKD), In einer anderen Ebene scheint es beim visuellen Zählen von thailändischen Zeichen, arabischen Zeichen, Devanagari-Zeichen usw. notwendig zu sein, in einer höheren Ebene namens Grapheme zu zählen.

Referenz: 7 Möglichkeiten, die Anzahl der Zeichen zu zählen

Grapheme

Mit anderen Worten

Es scheint.

Also in Python?

Welche Tools hat Python zum Zählen von Grapheme-Clustern? Es schien nicht in Unicodedata, der Standard-Python-Bibliothek, enthalten zu sein.

Antworten

Es scheint ein Paket namens [uniseg] zu geben (https://pypi.python.org/pypi/uniseg/).

Dieser Artikel zeigt hauptsächlich ein Beispiel in Python 3. (Ich werde nicht auf die Unterschiede eingehen, wie Unicode, Str und Bytes zwischen Python 2 und Python 3 behandelt werden.

Wie installiert man

$ pip install uniseg

Anwendungsbeispiel

>>> import uniseg.graphemecluster
>>> graphme_split = lambda w: tuple(uniseg.graphemecluster.grapheme_clusters(w))
>>>
>>> phrase = 'กินข้าวเย็น'  #Es scheint ein Satz zu sein, der bedeutet, auf Thai zu Abend zu essen
>>> len(phrase.encode('UTF-8'))  # UTF-Bytes bei 8
33
>>> len(phrase)  # Code Points
11
>>> len(graphme_split(phrase))  # Graphme clusters
8

Und so weiter.

Andere

uniseg scheint eine wort- oder satzbasierte Unterteilung zu haben. Es scheint, dass es mit Leerzeichen geschnitten werden kann, so dass es nicht möglich ist, auf Japanisch zu schreiben, was ein klebriges Wort ist.

Recommended Posts

Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
Teilt die Zeichenfolge durch die angegebene Anzahl von Zeichen. In Ruby und Python.
Zählen Sie die Anzahl der Zeichen im Text in der Zwischenablage auf dem Mac
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Projekt Euler # 17 "Anzahl der Zeichen" in Python
Zählen Sie die Anzahl der Zeichen mit Echo
Geben Sie die Anzahl der CPU-Kerne in Python aus
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
Verarbeitung (Python) Diagramm der Koordinaten der Liste Geben Sie an, wie oft in draw ()
So ermitteln Sie die Anzahl der Stellen in Python
Zählen Sie die Anzahl der Parameter im Deep-Learning-Modell
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck
[Tipps] Probleme und Lösungen bei der Entwicklung von Python + Kivy
Maximale Anzahl von Zeichen im Python3-Shell-Aufruf (pro Betriebssystem)
Die Geschichte von Python und die Geschichte von NaN
Beispiel für die Antwort auf den Python-Code --1.2 Zählen Sie die Anzahl der gleichen Zeichen
Wie kann man schnell die Häufigkeit des Auftretens von Zeichen aus einer Zeichenfolge in Python zählen?
[Python] Lassen Sie uns die Anzahl der Elemente im Ergebnis bei der Operation des Sets reduzieren
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Überprüfen Sie das Verhalten des Zerstörers in Python
Zählen / überprüfen Sie die Anzahl der Methodenaufrufe.
Das Ergebnis der Installation von Python auf Anaconda
Grundlagen zum Ausführen von NoxPlayer in Python
Auf der Suche nach dem schnellsten FizzBuzz in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Diagramm der Geschichte der Anzahl der Ebenen des tiefen Lernens und der Änderung der Genauigkeit
Ein leicht verständlicher Vergleich der grundlegenden Grammatik von Python und Go
python> array> Bestimmen Sie die Nummer und initialisieren Sie> mylist = [idx für idx im Bereich (10)] / mylist = [0 für idx im Bereich (10)] >> mylist = [0] * 10
Ändern Sie die Sättigung und Helligkeit von Farbspezifikationen wie # ff000 in Python 2.5
Überprüfen Sie die speicherinterne Byte-Zeichenfolge der Gleitkommazahl in Python
[Python] Berechnen Sie die Anzahl der Stellen, die zum Ausfüllen von Nullen erforderlich sind. [Hinweis]
Öffnen Sie eine Excel-Datei in Python und färben Sie die Karte von Japan
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Zählen Sie, wie oft zwei Werte gleichzeitig in einem Element vom Typ Python 3-Iterator angezeigt werden
4 Methoden zum Zählen der Anzahl von Ganzzahlen in einem bestimmten Intervall (einschließlich der imos-Methode) [Python-Implementierung]
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Überprüfen Sie, ob die Zeichen in Python ähnlich sind
Zusammenfassung der Unterschiede zwischen PHP und Python
Holen Sie sich den Aufrufer einer Funktion in Python
Passen Sie die Verteilung jeder Gruppe in Python an
Die Antwort von "1/2" unterscheidet sich zwischen Python2 und 3
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Primzahlaufzählung und Primzahlbeurteilung in Python
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Angeben des Bereichs von Ruby- und Python-Arrays
Teilen Sie die Zeichenfolge in die angegebene Anzahl von Zeichen
Kopieren Sie die Liste in Python
Über den Unterschied zwischen "==" und "is" in Python
Finden Sie die Anzahl der Tage in einem Monat
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Vergleichen Sie die Geschwindigkeit von Python Append und Map
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
Die Geschichte des Lesens von HSPICE-Daten in Python
[Hinweis] Über die Rolle des Unterstrichs "_" in Python