python脚本实现药品名自动翻译2
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share
第一步:excel自带有道自动翻译
第二步:有道API
有时候Json返回字典中,translation翻译为英文
替补就要从basic--explain 或web---value选择
第三步:百度翻译
最后不行还可以从百度翻译--百度百科获取中文解释(部分药品)


# -*- coding: utf-8 -*-
"""
原创作者Toby,QQ:231469242
Created on Wed Apr 20 08:58:05 2016
很多药品有道不能翻译出来,这需要二次翻译:百度或Google 的API可以找到
有时候Json返回字典中,translation翻译为英文 替补就要从basic--explain 或web---value选择 最后不行还可以从百度翻译--百度百科获取中文解释(部分药品) excel列英译中批量处理
csv对行的读取处理很快,对列的读取不方便
openpyxl行列均可读写
xlrd最方便
@author: Administrator
"""
import xlrd,json,requests,re,csv
key="232627369"
keyFrom="daxiongshuju" excelFilename="test.xlsx"
sheetName="Sheet1"
#打开excel数据
excelFile=xlrd.open_workbook(excelFilename) sheet=excelFile.sheet_by_name(sheetName)
#翻译后放入的列表
translation_list=[]
number_rows=sheet.nrows
number_columns=sheet.ncols #获取第一列的值
column1_values=sheet.col_values(0) #判断单个字符是否是汉字
# [^\x00-\xff]表示一个汉字
#[^\x00-\xff]+表示多个汉字
#中国机械工业联合会
#cnis 中国标准化研究院
def If_str_Chinese(variable):
#排除字符串类型
if type(variable)==str: re1=re.compile(r"[^\x00-\xff]")
mo1=re1.search(variable)
if mo1!=None and mo1.group()==variable:
return True
else:
return False #单词去除空格,名词符号,等等
def word_format(word):
word1=word.strip()
word2=word1.replace("\t","")
return word2 #单词去除空格,名词符号,等等
def wordList_format(wordList):
word=";".join(wordList)
word1=word.strip()
#去掉空格
word2=word1.replace('\n','')
word3=word2.replace('n.','')
word4=word3.replace(" ",'')
return word4 def Get_simple_translation(word):
url="http://fanyi.youdao.com/openapi.do?keyfrom=daxiongshuju&key=232627369&type=data&doctype=json&version=1.1&q=%s"%(word)
response=requests.get(url)
json_return=json.loads(response.text)
translation=json_return['translation']
translation1=wordList_format(translation)
wordTranslation_list=translation1.split(";")
#索取第一个翻译意思
translation2=wordTranslation_list[0]
#如果translation2 不是汉字,则舍去.这里需要深度修改,如果是中译英情况要变
for i in translation2:
#如果返回英文,且返回Json有basic内容
if If_str_Chinese(i)!=True and "basic" in json_return:
translation3=json_return['basic']["explains"]
translation3=wordList_format(translation3)
wordTranslation_list=translation3.split(";")
#索取第一个翻译意思
translation3=wordTranslation_list[0]
return translation3
else:
if "web" in json_return:
#返回网络解释
return json_return["web"][0]['value'][0]
#最终如果翻译结果为汉语,则翻译为空
for i in translation2:
if If_str_Chinese(i)!=True:
translation2="" return translation2 '''
len(translation)
Out[3]: 5 for i in translation:
print(i) errorCode
translation
query
basic
web
''' #批量翻译所有单词精简版本
def Get_all_simple_translation(words_list):
for word in words_list:
try:
translation=Get_simple_translation(word)
translation_list.append(translation)
except:
print("exception:",word)
continue
print("congradulation!")
return translation_list #遍历每个单词,逐行翻译
def Translate_column():
sheet_rows=[]
for row in range(number_rows):
word=sheet.cell(row,0).value
translation_position=sheet.cell(row,1).value #如果翻译的单元格为空,说明需要翻译
if translation_position=="":
try:
translation=Get_simple_translation(word)
sheet.put_cell(row,1,1,translation,0)
except:
print("exception:",word)
continue
else:
translation=translation_position row=[word,translation]
sheet_rows.append(row)
return sheet_rows #列表解析,获取新的列表没有"\t"符号
column1_values1=[word_format(i) for i in column1_values]
#翻译后放入的列表
#translation_list=Get_all_simple_translation(column1_values1) sheet_rows=Translate_column() #翻译内容写入到csv文件中
csvFilename="test.csv"
csvFile=open(csvFilename,'w',newline='') #newline=''新行为空
csvWriter=csv.writer(csvFile)
csvWriter.writerows(sheet_rows)
csvFile.close() '''
#判断单词是否是英语
def If_word_English(variable):
#排除字符串类型
if type(variable)==str: re1=re.compile(r"\w+")
mo1=re1.search(variable)
if mo1!=None and mo1.group()==variable:
return True
else:
return False If_word_English("love")
Out[45]: True #判断单词是否是汉语
def If_word_Chinese(variable):
pass '''

https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)

python脚本实现药品名自动翻译2的更多相关文章
- python脚本后台运行
问题描述: 环境: CentOS6.4 一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: python t ...
- bing搜索引擎子域名收集(Python脚本)
利用bing搜索引擎进行子域名收集,编写了一个简单的Python脚本,分享一下. #! /usr/bin/env python # _*_ coding:utf-8 _*_ import reques ...
- python脚本工具-2 去除扩展名后提取目录下所有文件名并保存
文件夹里有多个RM格式的视频文件,现需要把它们的文件名都提取出来,并去掉文件的扩展名,以便放到需要的网页里. 源代码: # --- picknames.py --- import os filenam ...
- 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本
某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...
- 使用NuGet打包并发布至ProGet过程 (步骤详细,附python脚本)【上篇】
一.基本知识 (1)NuGet : NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件, ...
- 将Python脚本封装成exe可执行文件 转
将Python脚本封装成exe可执行文件 http://www.cnblogs.com/renzo/archive/2012/01/01/2309260.html cx_freeze是用来将 Pyt ...
- PHP 调用Python脚本
上次做用户反馈自动翻译,写了个python脚本,将日文的用户反馈翻译成中文,效果虽然可以,但其它不懂python的童鞋就没法使用了,所以搭了个web服务,让其他人可以通过网页访问查询.使用的是apac ...
- C++中调用Python脚本
C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库, 需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了 先看Python的代码 代 ...
- cocos2d-x使用python脚本创建项目的简单方法
本文有CC原创,转载请注明地址:http://blog.csdn.net/oktears/article/details/13297003 在cocos2d-x2.1.4以上的版本中,取消了使用vs模 ...
随机推荐
- SmartBinding工作原理分析
关于kbmMW SmartBinding,我翻译了作者写的几篇文章,其强大的绑定机制,将可视控制与各种数据源灵活绑定在一起,实现了类似DBEdit数据敏感控件的效果,可以及大的减少我们的代码,实现界面 ...
- 一组简单好看的css3渐变按钮
主要代码如下: body { background:#fff } /* Mixins */ /* bg shortcodes */ .bg-gradient1 span,.bg-gradient1:b ...
- MacOS文本编辑无法打不开GB18030
不要直接双击打开 而是 打开sublime text或者其他文本编辑后,从软件里面的open选型打开
- Mysql实现数据库主从复制架构
MySQL复制 (1)扩展方式: Scale Up ,Scale Out (2)MySQL的扩展 读写分离 复制:每个节点都有相同的数据集 向外扩展 二进制日志 单向 (3)复制的功用: 数据分布 负 ...
- Linux行编辑器——ed
实验文件test.txt内容 root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x:::daemon:/sbin: ...
- 三星Q470c Logo界面无限掉电重启,变砖后的挽救过程
背景 三星笔记本的部分型号如:NP530 Q470等 安装win8后再次重装系统(我弄了个Ubuntu18)会导致无法进入BIOS菜单页面的问题.启动显示logo页面后,能够听到明显啪的一声(硬盘掉电 ...
- #Python绘制 文本进度条,带刷新、时间暂缓的
#Python绘制 文本进度条,带刷新.时间暂缓的 #文本进度条 import time as T st=T.perf_counter() print('-'*6,'执行开始','-'*6) maxx ...
- vue 有条件加载组件 执行某方法后再渲染组件
<component :is="currentCom"></component> import Grid from './component/grid' ...
- JS遍历表格获取每行数据及每个单元格数据
/** * 遍历表格获取每行数据及每个单元格数据 * @param tableID 表格ID */ function GetTable(tableID) { var milasUrl = {};//新 ...
- .net core 版本支持
NetCore sdk并不是每个版本都支持VS2017工具,也不是每个版本的sdk版本号和Runtime版本号都一样,这就需要我们在创建某个版本的net core应用时注意:使用不同版本的vs时需要对 ...
