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模 ...
随机推荐
- eclipse导入项目后出现红色叉号的解决方案
对于一名程序员来说,我导入的项目在项目的名称上无端加了一个红色的叉号,虽然这个不友好的符号,对于我整个的项目运行没有任何影响,但是总让我觉得不舒服,大大的叉号写在我的项目的脑袋上,我心里能舒服吗?于是 ...
- dockerfile构建nginx
mkdir docker_demo cd docker_demo wget http://nginx.org/download/nginx-1.2.9.tar.gz vim Dockerfile FR ...
- ASTA存在的问题
1.客户端执行一个查询,提示xx字段不存在.跟踪代码,原来服务端ADOQuery设置BCD返回,客户端AstaClientDataSet在设计期加了字段是ftFloat类型,这两个类型不同产生的错误. ...
- Image Processing and Analysis_21_Scale Space:Scale-space theory A basic tool for analysing structures at different scales——1994
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- linux在线安装jdk,tomcat,Nginx
安装jdk yum search java 查看java的所有版本内容 yum install -y java版本 -openjdk 安装成功 安装tomcat yum search tomcat y ...
- Django Restful Framework
你在浏览器中输入了一个地址的时候发生了什么事情? 1.HOST 2.DNS 3.HTTP/HTTPS协议 发送一个协议 4.进入了实现了WSGI协议的服务器(wsgiref uwsgi(C语言实现,多 ...
- SignalR的三个Demo
一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...
- Qt 4.8.5 + MinGW32 + Qt creater 安装
Qt 4.8.5 + MinGW32 + Qt creater 安装 下载文件 文件版本 Qt 4.8.5 MinGW 0.4.4 Qt Creator 2.8或2.8.1 gdb-7.4-MinGW ...
- [GDOI2014]采集资源
题目概述 题目描述 魔兽争霸3中,战略资源的采集通过使用农民.苦工.小精灵以及寺僧来进行. 在魔兽争霸4的开发中,玻璃渣觉得这种模式太过单一,于是他们想添加更多的单位来使采集的模式更加丰富. 在新的模 ...
- 理解 shared_ptr实现copy-on-write(COW)
看muduo库某个生产者消费者的地方,利用shared_ptr有效减少了锁的范围及无用的拷贝,下面来看一看 // reader 消费者, shared_ptr<map<string,int ...
