首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASCII中特殊字符的核算

ASCII中特殊字符的核算
EN

Stack Overflow用户
提问于 2020-08-08 23:13:56
回答 4查看 125关注 0票数 1

我正试图从数据集中筛选非英语应用程序,以解决我正在处理的一个问题。

如何将非英语应用程序从数据集中删除?最初的方法是检查字符串是否只能使用ASCII字符进行编码。如果该字符串不能仅用ASCII字符编码,则该字符串具有来自其他字母或特殊字符的字符。

在一些玩具示例中测试这种方法会产生如下结果:

代码语言:javascript
复制
def is_english(app_name):
try:
    app_name.encode(encoding='utf-8').decode('ascii')
except UnicodeDecodeError:
    return False
else:
    return True

print(is_english('Instagram'))
print(is_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(is_english('Docs To Go™ Free Office Suite'))
print(is_english('Instachat '))

显然,最初的方法存在一个问题,即'Docs To Go™Free Office Suite‘和'Instachat ',这两个英语应用程序都被认为是非英语应用,因为它们有特殊的字符(即'™’和'')。

对于如何允许使用“™”、“表情符号”等特殊字符,有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-08-08 23:34:38

您可以定义一个函数,该函数计算多少字符可能是英文字符,并返回高于某个阈值的True。不过,这并不是百分之百完美的(比如德语单词,比如Tastatur键盘这样的字母相同),但也许是个开始:

代码语言:javascript
复制
import re
def is_probably_english(app_name, threshold=0.9):
    rx = re.compile(r'[-a-zA-Z0-9_ ]')
    ascii = [char for char in app_name if rx.search(char)]
    quotient = len(ascii) / len(app_name)
    passed = True if quotient >= threshold else False
    return passed, quotient


print(is_probably_english('Instagram'))
print(is_probably_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(is_probably_english('Docs To Go™ Free Office Suite'))
print(is_probably_english('Instachat '))

这会产生

代码语言:javascript
复制
(True, 1.0)
(False, 0.3157894736842105)
(True, 0.9655172413793104)
(True, 0.9090909090909091)
票数 1
EN

Stack Overflow用户

发布于 2020-08-08 23:36:27

有一种方法:

代码语言:javascript
复制
def is_english(app_name):
   y = app_name.encode()
   return len(app_name) == len(y)

票数 0
EN

Stack Overflow用户

发布于 2020-08-08 23:44:47

  • ,您可以研究是否可以获得各种世界语言的字典(例如拼写检查字典)。当一个应用程序名称中的单词不是英语单词时,看看它是否在某个外语词典中。如果是这样的话,它更有可能是一个外国应用程序。

  • ,您可以查看该名称是用什么脚本编写的。这将排除您的示例,其中的名称主要由CJK字符组成。

  • 您可以应用当前的方法,但是可以先过滤掉某些Unicode类别中的字符(比如“符号”的字符)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63321047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档