Как удалить никкуд (знаки гласных) из документа Word 2016?

Я работаю над комментарием к «Этике отцов» и хочу, чтобы читатели могли читать источники, которые я цитирую, на древнееврейском языке. Я получаю большую часть своих источников с sefaria.org, и, к сожалению, многие источники имеют Nekudos (знаки гласных), а большинство из них - нет. Для последовательности и профессионализма я хочу, чтобы все исходники не содержали Nekudos.

Например , эта строка: מֹשֶׁה קִבֵּל תּוֹרָה מִסִּינַי. אוֹמֵר אֲנִי, לְפִי שֶׁמַּסֶּכֶת זוֹ должно быть משה קבל תורה מסיני. אומר אני שמסכת זו. Я ожидаю, что мне нужно будет делать это сотни раз, поэтому мне нужно что-то быстрое. Кто-то однажды сделал мне документ с макросами, чтобы сделать это, но он не работает в Word 2016. У кого-нибудь еще есть эффективный способ сделать это? Большое спасибо.

Может кто-нибудь добавить иврит в качестве тега? Я пока не могу. Спасибо.
Вы пробовали блокнот++?
Добавил несколько тегов. Это помогает? Вы можете попробовать поискать в сообществе иврита или в сообществе суперпользователей Stack Exchange. Я хотел бы найти прямую ссылку на любое сообщество, но я быстро наткнулся на этот вопрос. Не уверен, что это актуально. superuser.com/questions/769204/иврит-никкуд-на-ms-слове
@BugFolk Я изменил теги, включив в них [microsoft-word] и [formatting]. Иврит не подходит в качестве тега, потому что, хотя вопрос касается знаков гласных на иврите, его можно легко применить к любому языку. Кроме того, «иврит» — это не тег, и рекомендуется по возможности избегать создания тегов. Точно так же теги [программное обеспечение] и [язык] не соответствовали вопросу, который не касался ни языка, ни конкретно программного обеспечения. ОП спрашивал конкретно о MS Word, так что это гораздо лучший тег, чем «программное обеспечение».
Хорошо. Хорошо знать.

Ответы (4)

Быстрый поиск в Google hebrew remove nikkudдал ответ.

На Github есть JavaScript с кодом предварительного просмотра в реальном времени . Если это небольшой текст, вы можете использовать JavaScript либо онлайн, либо загрузить и использовать его на своем компьютере (сохранить как .js).

Все еврейские штрих-коды находятся между 1425 и 1479, а никкуд — между 0591 и 05C7.

Реализация Python (проверено):

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

Это работает очень быстро.

ОБНОВЛЕНО: Как использовать этот скрипт?

  1. Загрузите Python 3.xx с сайта python.org.
  2. Сохраните текст никкуда nikkud-test.txtв любом каталоге
  3. В меню «Пуск» запустите cmdоболочку/командную строку/терминал.
  4. Перейдите в каталог, в котором вы сохранили файл, введя cdзатем каталог
  5. введите pythonили откройте iPythonконсоль.
  6. скопировать + вставить скрипт
  7. no-nikkud-test.txtпоявится в том же каталоге

ОБНОВЛЕНИЕ без терминала (протестировано с Python 3.5 IDLE и iPython)

  1. Загрузите Python 3.5 или более позднюю версию с сайта python.org.
  2. Сохраните текст niqqud niqqud.txtв папке «Документы». (Windows / Mac)
  3. Откройте IDLE из меню «Пуск». (В качестве альтернативы используйте iPython )

Скопируйте и вставьте функцию ниже:

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

Затем запустите функцию с этим кодом:

hasar_niqqud()

Вот и все! Вы можете найти вывод в папке «Документы».niqqud-removed.txt

Большое спасибо. Я не знаком с кодированием. Как мне это использовать?
Не могли бы вы объяснить тем из нас, у кого есть технические сложности, где скачать Python3 и как запустить cmdоболочку?
Обновлено. Командная строка также называется терминалом в других системах. Это не так сложно, как кажется. Просто поначалу это немного подавляет.
Я не знаю. Я потратил некоторое время, пытаясь следовать этим инструкциям, и я продолжаю получать коды ошибок. Я действительно ничего не знаю об использовании таких программ.
Попробуйте установить iPython ipython.org/install.html У него интерфейс лучше, чем у терминала.
Добавлен упрощенный туториал без терминала. Я удалю предыдущее руководство, если оно слишком сложное (?). Должен сказать, что я довольно хорошо изучил иврит :)

Я искал то же самое. Покопался и нашел способы сделать это вне Word, но очень хотелось сделать это не выходя из Word. Прочитал еще немного и обнаружил, что ключ заключается в запуске поиска и замены, поиске гласных символов в блоке Unicode на иврите. Я хотел сохранить maqqef и sof pasuq, поэтому мне пришлось использовать три отдельных диапазона (если вам не нужны эти символы, вы можете упростить это до одного поиска по всему диапазону 1425-1479). Результаты ниже. Если вы выделите текст и запустите макрос, он будет применяться только к выделенному. Если у вас нет выбора, он будет работать до конца документа.

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

Если ваш список находится в Excel, вы можете использовать этот макрос (по предложению Джонатана Поттера). Выберите диапазон ячеек, затем выполните макрос в 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

Я искал приложение, которое предоставляло бы никуд (гласные) для слов, которые я использовал для создания глоссария. Однако, как только у меня появились слова в такой форме, я больше не мог их сортировать (как мы можем судить по этим вопросам).

Однако то же приложение, https://nakdan.dicta.org.il/ , также позволяет пользователю выбрать версию на «современном иврите», и если вы нажмете לחץ כאן (нажмите здесь), появится небольшое диалоговое окно. Нажмите на черный ящик, который в основном приведет вас к другой версии, чтобы добавить гласные, затем он фактически стирает все гласные, которые у вас были там.

Возможно, вам придется немного поиграть с ним, чтобы освоить его и / или делать это по частям.

Затем вы можете просто скопировать и вставить в свою электронную таблицу во временный столбец, чтобы использовать его для сортировки. После окончательной сортировки удалите этот столбец.

Попробуйте это для обходного пути!

С уважением, Мадлен

Привет, Мадлен, добро пожаловать на Writing.se! Совершите экскурсию и посетите справочный центр для получения дополнительной информации. Это хороший первый ответ, спасибо за участие и приятного письма!
Вот веб-страница, которая удаляет nikud: eshkol.net/Nikud/Default.aspx הסרת ניקוד Hasarat Nikkud