Насколько я понял, в юникоде нет отдельных диапазонов для упрощенных и традиционных иероглифов
Существует ли регулярное выражение, позволяющее убрать из текста традиционные иероглифы? или как это можно сделать иным способом?
2022.02.07Opiate Насколько я понял, в юникоде нет отдельных диапазонов для упрощенных и традиционных иероглифов
Существует ли регулярное выражение, позволяющее убрать из текста традиционные иероглифы? или как это можно сделать иным способом?
Есть встроенная функция в Libre Office по замене традиционных на упрощённые. Повозившись, из этого можно сделать механизм убирания из текста конкретно традиционных иероглифов.
test4,
да, конвертеры различные онлайн есть
у меня несколько иная задача - просто по возможности убрать традиционные иероглифы из текста
пока я нашел список 8300 традиционных иероглифов cj5-8300 для 倉頡
убрал все кроме иероглифов, сконвертировал в массив юникод-значений
изначальный текст тоже переконвертировал в массив юникод-значений
теперь надо один массив отсортировать по второму и выкинуть ненужное
2022.02.07Opiate test4,
да, конвертеры различные онлайн есть
у меня несколько иная задача - просто по возможности убрать традиционные иероглифы из текста
Если чистый текст, а не сложное форматирование, то легко. Берете весь диапазон возможных символов, кладете в один массив. Берете тот же диапазон, прогнанный вручную через конвертер, получаете второй массив. Удаляете из первого массива все символы, которые между массивами отличаются (то есть все упрощённые). Из оставшихся в первом (это и будут все традиционные), если хотите, можете регулярное выражение сделать, ну или скрипт, который все такие символы из любого текстового файла удаляет. Если с php/python хоть немного дружите, задача несложная.
test4,
я по юникоду сделаю, а его потом в иероглифы и латницу конвертну
завтра подумаю, как отфильтровать/отсортировать
пока что у меня оба массива вот так выглядят
2022.02.07Opiate Существует ли регулярное выражение, позволяющее убрать из текста традиционные иероглифы? или как это можно сделать иным способом?
заинтересовался сам) там походу unicode у них вперемешку для упрощенных и традиционных, поэтому сложно подобрать диапазон, нужно сравнивать каждый иероглиф по словарю-фильтру.
можно попробовать этот скрипт для удаления трад. иероглифов из txt-файла. Там правда на nodejs (если его нет, то надо установить)
ChinesePlus.club все могут делиться текстами и видео на китайском
Регулярки к сожалению нет, всё подобное делается списками.
2022.02.07Opiate пока я нашел список 8300 традиционных иероглифов cj5-8300 для 倉頡
убрал все кроме иероглифов, сконвертировал в массив юникод-значений
изначальный текст тоже переконвертировал в массив юникод-значений
теперь надо один массив отсортировать по второму и выкинуть ненужное
но, может, есть что-то попроще?
Зачем их в юникод конвертировать, почему нельзя просто удалить по списку?
2022.02.07Opiate завтра покопаюсь, как можно сделать простым удалением по списку
Самое примитивное for (....) text=text.replace(x, '') должно нормально работать, буквально две строчки.
И не понятно на счёт удаления, там что, традиционные и упрощённые просто идут рядом, типа 正體体字. Если там в скобках как по ссылке, то скобки и нужно в регулярке использовать: /\([^\)]+,/
Python module that identifies Chinese text as Simplified or Traditional.
>>> import hanzidentifier
>>> hanzidentifier.has_chinese('Hello my name is John.')
False
>>> hanzidentifier.is_simplified('John说:你好!')
True
>>> hanzidentifier.is_traditional('John說:你好!')
True
>>> hanzidentifier.has_chinese('Country in Simplified: 国家. Country in Traditional: 國家.')
True