bell notificationshomepageloginNewPostedit profile

Topic : How do I remove Nikkud (vowel marks) from a Word 2016 document? I am working on a commentary on Ethics of the Fathers and I want readers to be able to read sources I'm quoting in their - selfpublishingguru.com

10.04% popularity

I am working on a commentary on Ethics of the Fathers and I want readers to be able to read sources I'm quoting in their original Hebrew. I am getting most of my sources from sefaria.org and unfortunately many of the sources have Nekudos (vowel marks) while most of them don't. For consistency and professionalism I want all the sources to not contain Nekudos.

For example this line: מֹשֶׁה קִבֵּל תּוֹרָה מִסִּינַי. אוֹמֵר אֲנִי, לְפִי שֶׁמַּסֶּכֶת זוֹ should be משה קבל תורה מסיני. אומר אני שמסכת זו. I expect to need to do this hundreds of times so I need something fast. Somebody once made me a document with Macros to do this but it isn't working on Word 2016. Does anyone else have an efficient way to do it? Thank you so much.


Load Full (4)

Login to follow topic

More posts by @Ann1701686

4 Comments

Sorted by latest first Latest Oldest Best

10% popularity

I looked for an App that would provide the nikud (vowels) to words I was using to create a glossary. However, once I had the words in that form, I could no longer sort them (as we can tell from these questions).

However, the same App, nakdan.dicta.org.il/ also allows the user to select the "modern Hebrew" version, and if you click on לחץ כאן (click here) a little dialog box appears. Click on the black box that basically takes you to another version to add vowels, it actually then wipes out whatever vowels you had there.

You may have to play around a bit with it to get the hang of it and/or do it in parts.

Then you can just copy and paste into your spreadsheet in a temporary column to use for sorting. After final sorting, delete that column.

Give that a try for a work-around!

Regards,
Madeleine


Load Full (0)

10% popularity

In case your list is in Excel you could use this macro (based on the suggestion of Jonathan Potter). Select a range of cells, then execute the macro in 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


Load Full (0)

10% popularity

I was looking for the exact same thing. Dug around and found ways to do it outside Word, but really wanted to do this without leaving Word. Did some more reading and discovered the key is to run a find and replace, searching for the vowel characters in the Hebrew Unicode block. I wanted to keep maqqef and sof pasuq, so I had to use three separate ranges (if you don't want those characters, you can simplify this to one search for the whole range 1425-1479). The results are below. If you select text and run the macro, it will only apply to the selection. If you don't have a selection, it will run to end of document.

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


Load Full (0)

10% popularity

A quick Google search on hebrew remove nikkud gave an answer.

On Github there's a JavaScript with a live preview code. If it's little text you could use the JavaScript either online or download and use it on your pc (save as .js).

The Hebrew charcodes are all between 1425 and 1479 and the nikkud are between 0591 and 05C7.

Python implementation (tested):

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()

This works very fast.

UPDATED:
How to use this script?

Download Python 3.x.x from the python.org
Save your nikkud text to nikkud-test.txt in whatever directory
From the start menu start your cmd shell/command prompt/terminal.
Move to directory where you saved your file by typing cd followed by the directory
type python or open an iPython console.
copy + paste script
no-nikkud-test.txt will show up in the same directory

UPDATE without Terminal (Tested with Python 3.5 IDLE and iPython)

Download Python 3.5 or higher from python.org
Save your niqqud text to niqqud.txt in your Documents folder. (Windows / Mac)
Open IDLE from the Start Menu. (Alternatively, use iPython)

Copy and paste the function below:

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()

Then run the function with this code:

hasar_niqqud()

That's it! You can find the output in the Documents folder niqqud-removed.txt


Load Full (0)

Back to top