Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Normalisierung der Tokens vor dem Taggen #11

Open
AndreasBlombach opened this issue Jul 22, 2021 · 1 comment
Open

Normalisierung der Tokens vor dem Taggen #11

AndreasBlombach opened this issue Jul 22, 2021 · 1 comment

Comments

@AndreasBlombach
Copy link

Insbesondere in Daten aus sozialen Medien findet man häufig Wörter und ganze Sätze, die allein über Unicode-Zeichen in einer anderen Schriftart oder einem anderen Schriftstil dargestellt werden: 𝖋𝖗𝖊𝖎𝖍𝖊𝖎𝖙, 𝕴𝖒𝖕𝖋𝖆𝖚𝖘𝖜𝖊𝖎𝖘, 𝘔𝘢𝘴𝘬𝘦𝘯𝘱𝘧𝘭𝘪𝘤𝘩𝘵 u.ä.

SoMeWeTa taggt diese Tokens i.d.R. nicht korrekt, was sich vmtl. mit NKFC-Normalisierung ändern ließe:

import unicodedata
unicodedata.normalize("NFKC", "𝕴𝖒𝖕𝖋𝖆𝖚𝖘𝖜𝖊𝖎𝖘")
Out[2]: 'Impfausweis'

Da Kompatibilitätsäquivalenz leider nicht bloß solche Fälle betrifft, sollte das wahrscheinlich optional sein.

@tsproisl
Copy link
Owner

tsproisl commented Aug 3, 2021

Der Konstruktor hat jetzt die Option use_nfkc und die Kommandozeilenschnittstelle die Option --use-nfkc. Damit wird der Input für die interne Repräsentation nach NFKC normalisiert. Für die Ausgabe werden die originalen Eingabetokens verwendet, d.h. „𝕴𝖒𝖕𝖋𝖆𝖚𝖘𝖜𝖊𝖎𝖘“ wird intern zu „Impfausweis“, aber in der Ausgabe steht nach wie vor „𝕴𝖒𝖕𝖋𝖆𝖚𝖘𝖜𝖊𝖎𝖘“.

Theoretisch kann das die Performance von Modellen, die auf nicht-NFKC-normalisiertem Input trainiert wurden, negativ beeinflussen. Für die deutschen Modelle sollte das aber kein Problem sein. Die einzigen beiden Zeichen in den Trainingsdaten, bei denen das eine Rolle spielen würde, sind „…“ und „´“, wobei „…“ zu drei Punkten normalisiert wird („...“), was ebenfalls in den Trainingsdaten vorkommt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants