首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分析带有法语名称的英文文本

分析带有法语名称的英文文本
EN

Stack Overflow用户
提问于 2019-04-16 05:24:37
回答 1查看 59关注 0票数 0

我在读维克多·雨果的著名小说“悲惨世界”。我的项目的一部分是检测小说中每个人物在句子中的存在,并对它们进行计数。这可以通过下面这样的方式轻松完成:

代码语言:javascript
运行
复制
def character_frequency(character_per_sentences_dict,):
    characters_frequency = OrderedDict([]) 
    for k, v in character_per_sentences_dict.items():
        if len(v) != 0:
            characters_frequency[k] = len(v)
    return characters_frequency, characters_in_vol

这个馅饼可以很好的工作在所有的角色,除了“画笔”。

我还用下面的代码阅读了文本:

代码语言:javascript
运行
复制
import codecs 
import nltk.tokenize 

with open(path_to_volume + '.txt', 'r', encoding='latin1') as fp:                                                                        
   novel = ' '.join(fp.readlines())

# Tokenize sentences and calculate the number of sentences                                                                                    
sentences = sent_tokenize(novel)
num_volume = path_to_volume.split("-v")[-1]

我要补充的是,每个地方的口述都是一样的。

知道是怎么回事吗?!

下面是一个示例,其中出现了此名称:

“人们总是应该从逮捕受害者开始。在傍晚时分,沙威已经安排了他的部下,并在林荫道对面戈尔博住宅对面的巴里耶德-戈培林街的树丛中埋伏。他打开口袋,把负责看守洞穴的两个年轻女孩扔进口袋,开始了行动。但他只是把阿泽尔玛关在笼子里。至于爱潘妮,她不在她的岗位上,她已经消失了,他也没能抓住她。这时,沙威已经表明了他的观点,他竖起耳朵,等待着商定的信号。农场的来来去去使他非常着迷。最后,他变得不耐烦了,他肯定那里有个窝,肯定走运了,认出了许多进来的流氓,终于决定不等枪响就上楼去了。“

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 07:36:10

我同意@BoarGules的观点,即可能有一种更有效的方法来解决这个问题。话虽如此,我不知道你的问题出在哪里。Python完全支持Unicode。就在使用Python的标准字符串操作和库的程序逻辑中使用Unicode而言,您可以“就这么做”。

例如,这是可行的:

代码语言:javascript
运行
复制
#!/usr/bin/env python
import requests

names = [
    u'Éponine',
    u'Cosette'
]

# Retrieve Les Misérables from Project Gutenberg
t = requests.get("http://www.gutenberg.org/files/135/135-0.txt").text

for name in names:
    c = t.count(name)
    print("{}: {}".format(name, c))

结果:

代码语言:javascript
运行
复制
Éponine: 81
Cosette: 1004

我显然没有你所拥有的文本,所以我不知道它是如何编码的,或者它是如何被读取的。没有它我就不能测试它。在这段代码中,我从互联网上获取源文本。我的观点是,只要您的输入是合理的,非ASCII字符就不应该对您造成任何障碍。

运行它的所有时间都花在了阅读文本上。我认为即使你添加了几十个名字,在任何一台像样的电脑上也不会有明显的延迟。所以这个方法工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55697450

复制
相关文章

相似问题

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