Ich arbeite an einem Kommentar zur Ethik der Väter und möchte, dass die Leser die Quellen, die ich zitiere, in ihrem hebräischen Original lesen können. Ich bekomme die meisten meiner Quellen von sefaria.org und leider haben viele der Quellen Nekudos (Vokalzeichen), während die meisten von ihnen dies nicht tun. Aus Gründen der Konsistenz und Professionalität möchte ich, dass alle Quellen keine Nekudos enthalten.
Zum Beispiel diese Zeile: מֹשֶׁה קִבֵּל תּוֹרָה מִסִּינַי. אוֹמֵר אֲנִי, לְפִי שֶׁמַּסֶּכֶת זוֹ sollte משה קבל תורה מסיני sein. אומר אני שמסכת זו. Ich erwarte, dass ich das hunderte Male machen muss, also brauche ich etwas Schnelles. Jemand hat mir einmal ein Dokument mit Makros erstellt, um dies zu tun, aber es funktioniert nicht mit Word 2016. Hat jemand anderes eine effiziente Möglichkeit, dies zu tun? Ich danke dir sehr.
Eine schnelle Google-Suche auf hebrew remove nikkud
gab eine Antwort.
Auf Github gibt es ein JavaScript mit einem Live -Vorschaucode . Wenn es sich um wenig Text handelt, können Sie das JavaScript entweder online verwenden oder herunterladen und auf Ihrem PC verwenden (speichern unter .js
).
Die hebräischen Charcodes liegen alle zwischen 1425 und 1479 und die Nikkud zwischen 0591 und 05C7.
Python-Implementierung (getestet):
import unicodedata
# nikkud-test.txt is the file you save your text in.
f= open('nikkud-test.txt','r', encoding='utf-8')
content = f.read()
normalized=unicodedata.normalize('NFKD', content)
no_nikkud=''.join([c for c in normalized if not unicodedata.combining(c)])
no_nikkud
f.close()
f = open('no-nikkud-test.txt','w',encoding='utf-8')
fw = f.write(no_nikkud)
f.close()
Das funktioniert sehr schnell.
AKTUALISIERT: Wie verwende ich dieses Skript?
nikkud-test.txt
in einem beliebigen Verzeichniscmd
Shell/Eingabeaufforderung/Terminal.cd
gefolgt vom Verzeichnis eingebenpython
ein oder öffnen Sie sie.iPython
no-nikkud-test.txt
wird im selben Verzeichnis angezeigtUPDATE ohne Terminal (Getestet mit Python 3.5 IDLE und iPython)
niqqud.txt
in Ihrem Dokumentenordner. (Windows/Mac)Kopieren Sie die folgende Funktion und fügen Sie sie ein:
def hasar_niqqud(source="niqqud.txt"):
"""This function removes niqqud vowel diacretics from Hebrew.
@param source: The source filename with .txt extension."""
import os, unicodedata
path = os.path.expanduser('~/Documents/'+str(source))
f= open(path,'r', encoding='utf-8')
content = f.read()
normalized=unicodedata.normalize('NFKD', content)
no_niqqud=''.join([c for c in normalized if not unicodedata.combining(c)])
f.close()
path = os.path.expanduser('~/Documents/'+str(source)[:-4]+"-removed.txt")
f = open(path,'w',encoding='utf-8')
f.write(no_niqqud)
f.close()
Führen Sie dann die Funktion mit diesem Code aus:
hasar_niqqud()
Das ist es! Sie finden die Ausgabe im Ordner Dokumenteniqqud-removed.txt
cmd
Shell gestartet werden kann?Ich habe genau das gleiche gesucht. Ich habe herumgegraben und Wege gefunden, dies außerhalb von Word zu tun, wollte dies aber wirklich tun, ohne Word zu verlassen. Habe noch etwas gelesen und festgestellt, dass der Schlüssel darin besteht, ein Suchen und Ersetzen auszuführen und nach den Vokalzeichen im hebräischen Unicode-Block zu suchen. Ich wollte maqqef und sof pasuq behalten, also musste ich drei separate Bereiche verwenden (wenn Sie diese Zeichen nicht wollen, können Sie dies zu einer Suche für den gesamten Bereich 1425-1479 vereinfachen). Die Ergebnisse sind unten. Wenn Sie Text auswählen und das Makro ausführen, gilt es nur für die Auswahl. Wenn Sie keine Auswahl haben, wird es bis zum Ende des Dokuments ausgeführt.
Sub HebrewDevocalizer()
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[" & ChrW(1425) & "-" & ChrW(1469) & "]"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[" & ChrW(1471) & "-" & ChrW(1474) & "]"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "[" & ChrW(1476) & "-" & ChrW(1479) & "]"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Falls Ihre Liste in Excel ist, können Sie dieses Makro verwenden (basierend auf dem Vorschlag von Jonathan Potter). Wählen Sie einen Zellbereich aus und führen Sie dann das Makro in VBEditor aus.
Sub HebrewDevocalizer()
Dim i As Integer
For i = 1425 To 1469
Selection.Replace What:=ChrW(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next i
For i = 1471 To 1474
Selection.Replace What:=ChrW(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False
Next i
For i = 1476 To 1479
Selection.Replace What:=ChrW(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False
Next i
End Sub
Ich suchte nach einer App, die den Nikud (Vokale) für Wörter bereitstellt, die ich zum Erstellen eines Glossars verwendete. Sobald ich jedoch die Wörter in dieser Form hatte, konnte ich sie nicht mehr sortieren (wie wir an diesen Fragen erkennen können).
Dieselbe App, https://nakdan.dicta.org.il/ erlaubt es dem Benutzer jedoch auch, die „moderne hebräische“ Version auszuwählen, und wenn Sie auf לחץ כאן (hier klicken) klicken, erscheint ein kleines Dialogfeld. Klicken Sie auf das schwarze Kästchen, das Sie im Grunde zu einer anderen Version führt, um Vokale hinzuzufügen, es löscht dann tatsächlich alle Vokale, die Sie dort hatten.
Möglicherweise müssen Sie ein wenig damit herumspielen, um den Dreh raus zu bekommen und/oder es in Teilen tun.
Dann können Sie einfach kopieren und in eine temporäre Spalte in Ihre Tabelle einfügen, um sie zum Sortieren zu verwenden. Löschen Sie diese Spalte nach der endgültigen Sortierung.
Probieren Sie das für eine Problemumgehung aus!
Grüße Madeleine
Eliyahu
Boondoggle
BugFolk
Thomas setzt Monica Myron wieder ein
BugFolk