Estoy trabajando en un comentario sobre Ética de los Padres y quiero que los lectores puedan leer las fuentes que estoy citando en su hebreo original. Obtengo la mayoría de mis fuentes de sefaria.org y, lamentablemente, muchas de las fuentes tienen Nekudos (marcas de vocales), mientras que la mayoría no. Por consistencia y profesionalismo, quiero que todas las fuentes no contengan Nekudos.
Por ejemplo , esta línea: מֹשֶׁה קִבֵּל תּוֹרָה מִסִּינַי. אוֹמֵר אֲנִי, לְפִי שֶׁמַּסֶּכֶת זוֹ debería ser משה קבל תורה מסיני. אומר אני שמסכת זו. Espero tener que hacer esto cientos de veces, así que necesito algo rápido. Alguien una vez me hizo un documento con macros para hacer esto, pero no funciona en Word 2016. ¿Alguien más tiene una forma eficiente de hacerlo? Muchas gracias.
Una búsqueda rápida en Google hebrew remove nikkud
dio una respuesta.
En Github hay un JavaScript con un código de vista previa en vivo . Si es poco texto, puede usar el JavaScript en línea o descargarlo y usarlo en su PC (guardar como .js
).
Los códigos char hebreos están todos entre 1425 y 1479 y los nikud están entre 0591 y 05C7.
Implementación de Python (probada):
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()
Esto funciona muy rápido.
ACTUALIZADO: ¿Cómo usar este script?
nikkud-test.txt
en cualquier directoriocmd
shell/símbolo del sistema/terminal.cd
seguido del directoriopython
o abra una iPython
consola.no-nikkud-test.txt
aparecerá en el mismo directorioACTUALIZAR sin Terminal (Probado con Python 3.5 IDLE e iPython)
niqqud.txt
en su carpeta Documentos. (Windows/Mac)Copie y pegue la siguiente función:
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()
Luego ejecuta la función con este código:
hasar_niqqud()
¡Eso es! Puede encontrar la salida en la carpeta Documentosniqqud-removed.txt
cmd
shell?Estaba buscando exactamente lo mismo. Busqué y encontré formas de hacerlo fuera de Word, pero realmente quería hacerlo sin salir de Word. Leí un poco más y descubrí que la clave es buscar y reemplazar, buscando los caracteres de las vocales en el bloque Unicode hebreo. Quería mantener maqqef y sof pasuq, así que tuve que usar tres rangos separados (si no quieres esos caracteres, puedes simplificar esto a una búsqueda para todo el rango 1425-1479). Los resultados están abajo. Si selecciona texto y ejecuta la macro, solo se aplicará a la selección. Si no tiene una selección, se ejecutará hasta el final del documento.
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
En caso de que su lista esté en Excel, podría usar esta macro (basada en la sugerencia de Jonathan Potter). Seleccione un rango de celdas, luego ejecute la macro en VBEditor.
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
Busqué una aplicación que proporcionara el nikud (vocales) a las palabras que estaba usando para crear un glosario. Sin embargo, una vez que tuve las palabras en esa forma, ya no pude ordenarlas (como podemos ver en estas preguntas).
Sin embargo, la misma aplicación, https://nakdan.dicta.org.il/ , también permite al usuario seleccionar la versión "hebrea moderna", y si hace clic en לחץ כאן (haga clic aquí) aparece un pequeño cuadro de diálogo. Haga clic en el cuadro negro que básicamente lo lleva a otra versión para agregar vocales, en realidad luego borra las vocales que tenía allí.
Es posible que tengas que jugar un poco con él para dominarlo y/o hacerlo en partes.
Luego, puede simplemente copiar y pegar en su hoja de cálculo en una columna temporal para usar para clasificar. Después de la clasificación final, elimine esa columna.
¡Pruébalo para una solución alternativa!
Saludos, Magdalena
Eliahu
Despilfarro
BugFolk
Thomas reincorpora a Monica Myron
BugFolk