[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]请问批处理能否把目录下TXT里日文转换成罗马音?

本帖最后由 1139054012 于 2025-4-17 15:58 编辑

搜了下论坛好像没人问过这方面问题

比如目录下有1.txt,
里面每行一个日文
鬼父
シオン
ギルドの受付嬢ですが、残業は嫌なのでボスをソロ討伐しようと思います

转换后ret.txt
Oni Chichi
Shion
Guild no Uketsukejou Desu ga, Zangyou wa Iya nano de Boss o Solo Toubatsu Shiyou to Omoimasu或Guild no Uketsukejou desu ga, Zangyou wa Iya nanode Boss wo Solo Toubatsu Shiyou to Omoimasu


转换后首字母大写

这得看对应自然语言处理系统或分词方式,不同的系统或方式分出来的不同
例如中文: 批处理之家 可以分成
批处理 | 之家;对应拼音pingchuli  zhijia
批处理 | 之 | 家;对应拼音pingchuli  zhi  jia
批 | 处理 | 之家;对应拼音ping  chuli  zhijia
批 | 处理 | 之 | 家;对应拼音ping  chuli  zhi  jia
日文同理,不同的系统或方式分出来的不同

TOP

本帖最后由 1139054012 于 2025-4-17 16:00 编辑

回复 2# aloha20200628

谢了,挺好奇欧美那边到底怎么转换的,之后网站都统一用这个,像上面简单日文,转换出来差不多统一,就只是首字母是否大小写区别,倒没什么,如果遇到长一些文本,就怎么没法完全转换出欧美那边网站统一的名称

示范文本
ギルドの受付嬢ですが、残業は嫌なのでボスをソロ討伐しようと思います

在线网站转换
girudo no uketsuke jōdesuga , zangyō wa iyananode bosu o soro tōbatsu shiyō to omoimasu

第三方软件转换
girudo no uketsuke jou desu ga 、 zangyou wa iya na no de bosu o soro toubatsu shiyou to omoi masu

cutlet模块转换
Guild no uketsuke jou desuga, zangyou wa iya na no de boss wo solo toubatsu shiyou to omoimasu

大体都差不多,但是都不统一,和欧美那边转换发布的名称总是部分语句分割,合并有微妙差别,而罗马音和英文名一样,只要部分有误差,网站搜索就找不到

欧美那边统一默契用
Guild no Uketsukejou Desu ga, Zangyou wa Iya nano de Boss o Solo Toubatsu Shiyou to Omoimasu
Guild no Uketsukejou desu ga, Zangyou wa Iya nanode Boss wo Solo Toubatsu Shiyou to Omoimasu


部分语法老对不上,难道欧美人转换罗马音有自己的规则,和这些工具转换的部分有误差

TOP

本帖最后由 aloha20200628 于 2025-4-17 13:15 编辑

回复 1# 1139054012

批处脚本调用 python 第三方模块(如 cutlet)可以转换日文(片假名+平假名+漢字)为罗马音...
假设楼主已预装了 python 环境,则须安装第三方模块 cutlet,可用以下代码直接在命令行运行完成
  1. pip install cutlet
  2. pip install unidic-lite
复制代码
安装成功后,再将以下代码存为 test.bat 与源文件 1.txt 同目录运行即可(假设 python.exe 已被定义在系统路径中),结果会生成 ret.txt 文件...
  1. @echo off &python -c "import cutlet; j=cutlet.Cutlet();f=open('1.txt','r'); js=f.read().splitlines(); f.close(); f=open('ret.txt','w'); f.write('\n'.join([j.romaji(l) for l in js])); f.close()" &pause&exit/b
复制代码
1

评分人数

TOP

返回列表