相关疑难解决方法(0)

在Python中将unicode文本规范化为文件名等

有没有任何standalonenish解决方案用于将国际unicode文本规范化为Python中的安全ID和文件名?

例如,转My International Text: åäömy-international-text-aao

plone.i18n做很好的工作,但不幸的是它取决于zope.securityzope.publisher和其他一些包使得它十分脆弱的依赖.

plone.i18n适用的一些操作

python unicode plone normalization unicode-normalization

20
推荐指数
1
解决办法
6303
查看次数

Python:替换重音的有效方法(é到e),删除[^ a-zA-Z\d\s]和lower()

使用Python 3.3.我想做以下事情:

  • 用基本字符(例如ô到o)替换特殊的字母字符,例如e acute(é)和o circumflex(ô)
  • 删除除字母数字以外的所有字符和字母数字字符之间的空格
  • 转换为小写

这是我到目前为止:

mystring_modified = mystring.replace('\u00E9', 'e').replace('\u00F4', 'o').lower()
alphnumspace = re.compile(r"[^a-zA-Z\d\s]")
mystring_modified = alphnumspace.sub('', mystring_modified)
Run Code Online (Sandbox Code Playgroud)

我怎样才能改善这个?效率是一个大问题,特别是因为我目前正在循环中执行操作:

# Pseudocode
for mystring in myfile:
    mystring_modified = # operations described above
    mylist.append(mystring_modified)
Run Code Online (Sandbox Code Playgroud)

有问题的文件大约每个200,000个字符.

python regex

14
推荐指数
2
解决办法
3万
查看次数

在PySpark中使用Apache Spark数据帧删除重音的最佳方法是什么?

我需要删除西班牙语中的重音和来自不同数据集的其他语言的重音.

我已经在这篇文章提供的代码中做了一个函数,删除了特殊的重音符号.问题是函数很慢,因为它使用了UDF.我只是想知道我是否可以提高函数的性能以在更短的时间内获得结果,因为这对小型数据帧有好处,但对大型数据帧则不行.

提前致谢.

在这里代码,您将能够按照它呈现的方式运行它:

# Importing sql types
from pyspark.sql.types import StringType, IntegerType, StructType, StructField
from pyspark.sql.functions import udf, col
import unicodedata

# Building a simple dataframe:
schema = StructType([StructField("city", StringType(), True),
                     StructField("country", StringType(), True),
                     StructField("population", IntegerType(), True)])

countries = ['Venezuela', 'US@A', 'Brazil', 'Spain']
cities = ['Maracaibó', 'New York', '   São Paulo   ', '~Madrid']
population = [37800000,19795791,12341418,6489162]

# Dataframe:
df = sqlContext.createDataFrame(list(zip(cities, countries, population)), schema=schema)

df.show()

class Test():
    def __init__(self, df):
        self.df = df

    def clearAccents(self, …
Run Code Online (Sandbox Code Playgroud)

python unicode-normalization apache-spark apache-spark-sql pyspark

14
推荐指数
2
解决办法
3643
查看次数

在Python中用unicode字符串替换非ascii字符

如何在Python中用unicode字符串替换非ascii字符?

这是给定输入的输出:

música - >音乐

cartón - >纸箱

caño - > cano

Myaybe有一个字母,其中'á'是一个键,'a'是一个值?

python ascii

12
推荐指数
2
解决办法
7838
查看次数

Python正则表达式将字符串中的非ascii字符转换为最接近的ascii等价物

我正在寻找简单的Python函数,它接受一个字符串并返回一个类似的字符串,但所有非ascii字符转换为它们最接近的ascii等价物.例如,应该删除变音符号等.我想象必须有一个非常规范的方法来做这个并且有很多相关的stackoverflow问题,但我找不到一个简单的答案所以它似乎值得一个单独的问题.

输入/输出示例:

"Étienne" -> "Etienne"
Run Code Online (Sandbox Code Playgroud)

python regex ascii character-encoding special-characters

12
推荐指数
2
解决办法
6261
查看次数

如何从列中的值中删除重音?

如何将特殊字符更改为通常的字母?这是我的数据帧:

In [56]: cities
Out[56]:

Table Code  Country         Year        City        Value       
240         Åland Islands   2014.0      MARIEHAMN   11437.0 1
240         Åland Islands   2010.0      MARIEHAMN   5829.5  1
240         Albania         2011.0      Durrës      113249.0
240         Albania         2011.0      TIRANA      418495.0
240         Albania         2011.0      Durrës      56511.0 
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样:

In [56]: cities
Out[56]:

Table Code  Country         Year        City        Value       
240         Aland Islands   2014.0      MARIEHAMN   11437.0 1
240         Aland Islands   2010.0      MARIEHAMN   5829.5  1
240         Albania         2011.0      Durres      113249.0
240         Albania         2011.0      TIRANA      418495.0
240         Albania         2011.0      Durres      56511.0 
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

12
推荐指数
3
解决办法
8593
查看次数

如何通过在python中折叠来实现Unicode字符串匹配

我有一个实现增量搜索的应用程序.我有一个匹配的unicode字符串目录,并将它们与给定的"key"字符串匹配; 如果目录字符串按顺序包含键中的所有字符,则它是"命中",如果目录字符串中的关键字符集群,则排序更好.

无论如何,这工作正常,并完全匹配的Unicode,让"OST"将匹配" OST blocket"或"R OST "或"R ö d ST恩".

无论如何,现在我想实现折叠,因为在某些情况下,区分诸如"á"或"é"的目录字符和关键字符"a"或"e"是没有用的.

例如:"Ole"应匹配"Olé"

我如何在Python中最好地实现这个unicode-folding matcher?效率非常重要,因为我必须将数千个目录字符串与短的给定键匹配.

它不必将其变成ascii; 实际上,算法的输出字符串可以是unicode.留下一个角色比剥离它更好.


我不知道接受哪个答案,因为我使用了两者兼而有之.采用NKFD分解并删除组合标记几乎可以完成,我只添加了一些自定义音译.这是现在看起来的模块:(警告,包含内联的unicode字符,因为编辑这种方式更好.)

# -*- encoding: UTF-8 -*-

import unicodedata
from unicodedata import normalize, category

def _folditems():
    _folding_table = {
        # general non-decomposing characters
        # FIXME: This is not complete
        u"?" : u"l",
        u"œ" : u"oe",
        u"ð" : u"d",
        u"þ" : u"th",
        u"ß" : u"ss",
        # germano-scandinavic canonical transliterations
        u"ü" : u"ue",
        u"å" : u"aa",
        u"ä" : u"ae",
        u"æ" : u"ae",
        u"ö" : u"oe",
        u"ø" …
Run Code Online (Sandbox Code Playgroud)

python unicode

10
推荐指数
1
解决办法
4497
查看次数

从字符串中删除特殊字符

我有一个字符串"MikaelHåfström",其中包含一些特殊字符如何使用python删除它?

python

10
推荐指数
2
解决办法
1万
查看次数

如何在django中使用postgres对Accent不敏感的过滤器?

嗨我发现在postgres数据库中,我们无法配置默认的重音敏感度(在旧邮件交换机上).

有没有办法让_icontains对特殊字符(é,è,à,ç,ï)不敏感,或者我必须使用postgres regex用_iregex替换两边(ç-> c,é-> e ...) ?

编辑:这个问题很旧,并且在1.8之前为django的用户保留.对于那些使用最新django版本的人来说,这里是新的方式:https://docs.djangoproject.com/en/dev/ref/contrib/postgres/lookups/#std : fieldlookup-unaccent

django postgresql

9
推荐指数
2
解决办法
8248
查看次数

如何将unicode重音字符转换为没有重音符号的纯ascii?

我正在尝试从http://dictionary.reference.com/browse/apple?s=t等字典网站下载一些内容

我遇到的问题是原始段落有所有那些波浪线,反向字母等等,所以当我读取本地文件时,我最终会得到像\ x85,\ xa7,\ x8d等那些有趣的转义字符. .

我的问题是,有什么方法可以将所有转义字符转换为各自的UTF-8字符,例如,如果有'à'我如何将其转换为标准'a'?

Python调用代码:

import os
word = 'apple'
os.system(r'wget.lnk --directory-prefix=G:/projects/words/dictionary/urls/ --output-document=G:\projects\words\dictionary\urls/' + word + '-dict.html http://dictionary.reference.com/browse/' + word)
Run Code Online (Sandbox Code Playgroud)

我在Windows 7系统上使用wget-1.11.4-1(不要杀了我的Linux用户,这是客户端的要求),并且用Python 2.6脚本文件启动了wget exe.

python unicode wget unicode-normalization

9
推荐指数
2
解决办法
2万
查看次数