标签: cjk

如何在不使用空格作为单词分隔符的语言(如中文)上进行Python split()?

我想把一个句子分成一个单词列表.

对于英语和欧洲语言,这很简单,只需使用split()

>>> "This is a sentence.".split()
['This', 'is', 'a', 'sentence.']
Run Code Online (Sandbox Code Playgroud)

但是我还需要处理不使用空格作为单词分隔符的中文等语言的句子.

>>> u"??????".split()
[u'\u8fd9\u662f\u4e00\u4e2a\u53e5\u5b50']
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.

如何将这样的句子分成单词列表?

更新:

到目前为止,答案似乎表明这需要自然语言处理技术,并且中文中的单词边界是模糊的.我不确定我明白为什么.中文中的单词边界对我来说非常明确.每个中文单词/字符都有一个相应的unicode,并在屏幕上显示为单独的单词/字符.

那么模糊性来自何处.正如您在我的Python控制台输出中所看到的,Python可以告诉我的例句由5个字符组成:

? - u8fd9
? - u662f
? - u4e00
? - u4e2a
? - u53e5
? - u5b50
Run Code Online (Sandbox Code Playgroud)

所以很明显Python告诉单词/字符边界没有问题.我只需要列表中的那些单词/字符.

python string unicode nlp cjk

14
推荐指数
4
解决办法
1万
查看次数

中文代码

我们正在将旧的.net 1.1网站更新为2.0.该网站目前支持中文(繁体)和中文(简体)

我在尝试使用代码检测语言和文化时遇到运行时错误:zh-CHS(simified)&zh-CHT(traditional):

请选择特定的文化,例如zh-CN,zh-HK,zh-TW,zh-MO,zh-SG.

来自:System.Globalization.CultureInfo.CreateSpecificCulture(String name)

看来这些是过时的语言/文化代码.有没有人对如何将这些语言映射到支持的特定国家/文化有任何见解?

.net localization cjk .net-2.0

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

将一个句子分成单独的单词

我需要将一个中文句子分成单独的单词.中文的问题是没有空格.例如,句子可能看起来像:( ?????用空格表示:)?? ?? ?.

目前我可以想到一个解决方案.我有一个带有中文单词的字典(在数据库中).该脚本将:

  1. 尝试在数据库(??)中找到句子的前两个字符,

  2. 如果??实际上是一个单词并且它在数据库中,则脚本将尝试查找前三个字符(???).???不是一个字,所以它不在数据库中=>我的应用程序现在知道这??是一个单独的单词.

  3. 尝试与其他角色一起做.

我真的不喜欢这种方法,因为即使是一个小文本,它也会查询数据库太多次.

还有其他解决方案吗?

php cjk multibyte text-segmentation

13
推荐指数
2
解决办法
3276
查看次数

使用SAPI有没有办法为中文发音输入拼音?

目标是能够发音像wo3.System.Speech可以处理汉字,但有没有办法直接输入拼音?从http://msdn.microsoft.com/en-us/library/ms720566(v=vs.85).aspx看来,我应该能够像这样写出拼音

<PRON SYM="ni 3"/>
Run Code Online (Sandbox Code Playgroud)

我如何使用PRON SYM?

更新: 以下是一些讨论该问题但没有解决方案的网页: - http://www.ms-news.net/f3012/problem-with-phonemes-and-chinese-tts-3031240.html

Update2 我在.NET中使用System.Speech.Synthesizer.也许这就是问题所在.我可以看到将它输入Speech Properties工作正常:

在此输入图像描述

如果我从C#中执行此操作,它只会读取标记:

        var culture = CultureInfo.GetCultureInfo("zh-CN");
        var synth = new SpeechSynthesizer();
        var voices = synth.GetInstalledVoices(culture);

        if (voices.Count > 0)
        {
            synth.SelectVoice(voices[0].VoiceInfo.Name);
            synth.Speak("<pron sym=\"ni 3 hao 3 xiao 1\"/>");
        }
Run Code Online (Sandbox Code Playgroud)

c# sapi text-to-speech cjk

13
推荐指数
1
解决办法
2356
查看次数

内置iOS字体,支持中文字符?

iOS捆绑哪些字体有一组独特的繁体中文字符?

似乎iOS 5中包含的字体列表位于iosfonts.com ; 然而,似乎大多数字体(例如:"GillSans-Bold")将使用一种常见的字体(虽然我不确定它是什么)来渲染中文字符.

到目前为止,通过反复试验,似乎以下内容具有独特的中文字符集:

  • STHeitiSC介质
  • STHeitiTC介质
  • HiraKakuProN-W6

fonts cjk ios

13
推荐指数
1
解决办法
8978
查看次数

使用PIL绘制多语言文本

我在使用PIL绘制多语言文本时遇到问题.让我们说我想画文字 - "ひらがな - 平假名,히라가나".但是PIL的ImageDraw.text()函数一次只能使用一种字体,因此我无法正确绘制该文本,因为它需要英文,日文和韩文字体.

到目前为止,我没有找到一个简单的解决方案,比如将多个字体传递给PIL,这样它就可以为每个Unicode字符选择合适的字体(就像现代SDK或Web浏览器一样).

我在想的是,我应该遍历每个角色,并确定自己为每个角色使用哪种字体.但我不禁想到必须有一个更简单的方法来做到这一点.

我正朝着正确的方向前进吗?是不是有更简单的方法?

PS)如果有更好的解决方案,可以使用其他语言或其他成像库.

unicode fonts imaging cjk python-imaging-library

13
推荐指数
1
解决办法
5520
查看次数

如何确定普通话的Levenshtein距离?

我们正在开发一个系统,使用UTF-8,UTF-16和UTF-32 Unicode字符标准对50多种国际语言进行模糊匹配.到目前为止,我们已经能够使用Levenshtein距离来检测德语Unicode扩展字符单词的拼写错误.

我们希望扩展这个系统来处理用Unicode表示的普通话中文表意文字.我们如何在相似的汉字之间进行Levenshtein距离计算?

c++ unicode edit-distance cjk levenshtein-distance

13
推荐指数
1
解决办法
2136
查看次数

如何在我的代码中打印中文单词..使用python

这是我的代码:

print '??'.decode('gb2312').encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

...它打印:

SyntaxError: Non-ASCII character '\xe5' in file D:\zjm_code\a.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)

我该如何打印'哈哈'?

更新: 当我使用以下代码时:

#!/usr/bin/python
# -*- coding: utf-8 -*-

print '??'
Run Code Online (Sandbox Code Playgroud)

...打印???.这不是我想要的.

我的IDE是Ulipad,这是IDE的错误吗?

第二次更新:

此代码将正确打印字符:

#!/usr/bin/python
# -*- coding: utf-8 -*-


print u'??'.encode('gb2312')
Run Code Online (Sandbox Code Playgroud)

......当我用它时:

#!/usr/bin/python
# -*- coding: utf-8 -*-

a='??'
print a.encode('gb2312')
Traceback (most recent call last):
  File "D:\zjm_code\a.py", line 5, in <module>
    print a.encode('gb2312')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: …
Run Code Online (Sandbox Code Playgroud)

python cjk

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

UTF-8 CJK字符不在Java中显示

我已经阅读了一段时间的Unicode和UTF-8编码,我想我理解它,所以希望这不是一个愚蠢的问题:

我有一个文件,其中包含一些CJK字符,并已保存为UTF-8.我安装了各种亚洲语言包,并且其他应用程序正确地呈现了字符,所以我知道这很有用.

在我的Java应用程序中,我按如下方式读取文件:

// Create objects
fis = new FileInputStream(new File("xyz.sgf"));
InputStreamReader is = new InputStreamReader(fis, Charset.forName("UTF-8"));
BufferedReader br = new BufferedReader(is);

// Read and display file contents
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
    sb.append(line);
}
System.out.println(sb);
Run Code Online (Sandbox Code Playgroud)

输出显示CJK字符为'???'.一个is.getEncoding()确认它肯定使用UTF-8的电话.我错过了让角色正确显示的步骤?如果它有所不同,我正在使用Eclipse控制台查看输出.

java utf-8 cjk

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

如何让Haskell或ghci能够显示中文字符并运行名为scripts的汉字?

我想制作一个Haskell脚本来读取/ home文件夹中的文件.但是有许多以中文字符命名的文件,而Haskell和Ghci无法管理它.似乎Haskell和Ghci不擅长显示UTF-8字符.

这是我遇到的:

Prelude> "?Haskell??Ghci??????????????????"

"\35753Haskell\25110\32773Ghci\33021\27491\30830\26174\31034\27721\23383\24182\19988\35835\21462\27721\23383\21629\21517\30340\25991\26723"
Run Code Online (Sandbox Code Playgroud)

unicode haskell character cjk ghci

12
推荐指数
1
解决办法
3205
查看次数