zoukankan      html  css  js  c++  java
  • 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(" ","") return word2 #单词去除空格,名词符号,等等 def wordList_format(wordList): word=";".join(wordList) word1=word.strip() #去掉空格 word2=word1.replace(' ','') 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 #列表解析,获取新的列表没有" "符号 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经典文章)


  • 相关阅读:
    深入理解Java内存模型(四)——volatile
    深入理解Java内存模型(三)——顺序一致性
    深入理解Java内存模型(二)——重排序
    深入理解Java内存模型(一)——基础
    HashMap完全解读
    HTTP访问控制(CORS)
    理解RESTful架构
    转: Java LinkedList基本用法
    JAVA_POI 操作Excel
    maven 详解二
  • 原文地址:https://www.cnblogs.com/webRobot/p/5426744.html
Copyright © 2011-2022 走看看