python判断英文

#!/usr/bin/python
#-*-coding:utf-8-*-
__author__ = 'lxw'
#dictionary.txt的下载地址为:http://pan.baidu.com/s/1i4JL4RN
import  string
def     loadEnglish():#这个函数加载字典文件
        dicFile = open('dictionary.txt')
        english_word= {}
        for word in dicFile.read().split('\n'):
            english_word[word]=None
        return english_word

ENGLISH_WORDS = loadEnglish()

def     removenonLetters(message):#移除非字母字符,包括标点符号和数字
        letterOnly = []
        allLetter = string.uppercase+string.lowercase+' \n\t'
        for i in message:
            if i in allLetter:
                letterOnly.append(i)
        return  "".join(letterOnly)

def     getEnglishCount(message):#得到一段字符串中单词的个数
        message = message.upper()
        message = removenonLetters(message)
        match = 0
        words = message.split()
        if len(words)==0: return 0.0
        for word in words:
            if word in ENGLISH_WORDS.keys():
                match+=1
        return float(match)/len(words)

def     isEnglish(message,wordPercentage=20,letterPercentage=85):
#调用这个函数判断一段字符串是否问一段英文.如果是则返回True
        wordMatch = getEnglishCount(message)*100 >= wordPercentage
        removedMsg = removenonLetters(message)
        letterMatch = (len(removedMsg)/float(len(message)))*100>=letterPercentage

        return  wordMatch and letterMatch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值