- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 NLTK word_tokenize
对 French 中的文本使用:
txt = ["Le télétravail n'aura pas d'effet sur ma vie"]
print(word_tokenize(txt,language='french'))
它应该打印:
['Le', 'télétravail', 'n'','aura', 'pas', 'd'','effet', 'sur', 'ma', 'vie','.']
但是我得到:
['Le', 'télétravail', "n'aura", 'pas', "d'effet", 'sur', 'ma', 'vie','.']
有谁知道为什么在法语中不能正确拆分标记以及在用法语进行 NLP 时如何克服这个问题(以及其他潜在问题)?
最佳答案
查看 word_tokenize
的源代码显示,language
参数仅用于确定如何将输入拆分为句子。对于单词级别的标记化,使用了(略有修改的)TreebankWordTokenizer
,它最适合english 输入和类似don't 的缩写。来自 nltk/tokenize/__init__.py
:
_treebank_word_tokenizer = TreebankWordTokenizer()
# ... some modifications done
def word_tokenize(text, language='english', preserve_line=False):
# ...
sentences = [text] if preserve_line else sent_tokenize(text, language)
return [token for sent in sentences
for token in _treebank_word_tokenizer.tokenize(sent)]
要获得所需的输出,您可能需要考虑使用不同的分词器,例如 RegexpTokenizer
,如下所示:
txt = "Le télétravail n'aura pas d'effet sur ma vie"
pattern = r"[dnl]['´`]|\w+|\$[\d\.]+|\S+"
tokenizer = RegexpTokenizer(pattern)
tokenizer.tokenize(txt)
# ['Le', 'télétravail', "n'", 'aura', 'pas', "d'", 'effet', 'sur', 'ma', 'vie']
我的法语知识有限,这只能解决所述问题。对于其他情况,您将不得不调整模式。您还可以查看 TreebankWordTokenizer
的实现,以了解更复杂的解决方案。另请记住,如果需要,您需要事先用这种方式拆分句子。
关于python - 法语文本上的 NLTK word_tokenize 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47372801/
我正在从事一个项目,我必须将 Pocketsphinx 的语音功能集成到一个 Android 应用程序中。事实上,我必须集成 Pocketpshinx 提供的音素识别功能,它应该能够识别法语中的音素,
我想在 javascript/php 中实现法语、俄语等外语的拼写纠正。对于英语拼写检查器,我可以使用编辑距离算法从英语词典中检索单词(词典是使用 Trie 构建的)并返回出现频率最高的单词。我还找到
我有一个 .NET MVC 页面,其中包含每个项目的列表 rel 中的编码描述.我希望能够搜索带有 rel 的所有项目包含我的搜索查询。 其中一个字段的值为 htmlentities rel='D&
我有这种日期格式: Mon, Nov 19, 2018 我希望它采用法语短日期格式(DD/MM/YYY) 但我无法用excel的基本日期格式解决它。 有任何想法吗 ? 最佳答案 您可以使用 MATCH
我有一个 Excel,其中每个月都会创建一个名为 kpi_monthname 的工作表,其中月份名称包含该月的前 3 个字符。就像 5 月一样,它显示为 kpi_mai 或 4 月它显示为 kpi_a
我想知道,如果这样 alph = ['a'..'z'] 返回我 "abcdefghijklmnopqrstuvwxyz" 那我怎样才能返回法语字母呢?我可以通过某种方式传递语言环境吗? 更新:嗯)我知
法语含糊的语言问题。我正在建立一个有 5 种语言的网站。我已经使用 PHP 设置了法语等语言文件 $lang['Description'] = 'Photos'; $lang['cookie']= "
Popup Click me to toggle the popup! A Simple Popup! // When the user clicks on div, open the po
所以我正在为我目前工作的法国客户做一个网站,我正在为网站使用来自 Google Fonts 的名为 Comfortaa 的字体。该网站是法语的,因此使用带有重音符号的字母,例如 é à 和 è 然而,
我在一个网站上实现了一个语言插件,你知道排序点击并将所有内容更改为阿拉伯语、俄语..等(我知道现代浏览器已经为此内置了功能,但我们选择了去这样。) 我一直在徘徊的是,如果我们的正常网站正在运行,我们如
我开发了一个短信发送器应用程序,我想知道用户使用的语言。那么,当用户键入一条消息时,我如何知道他/她使用的语言? 最佳答案 通过使用获取输入类型管理器: InputMethodManager imm
我有如下一段代码 public static void main(String[] args) throws UnsupportedEncodingException { System
我想验证任何给定格式的日期格式。例如。法语:14-déc-2017。在普通英语中,14-Dec-2017 采用 %d-%b-%Y 格式。我想要的是任何语言格式的给定日期都应该得到验证。 在Python
我正在尝试初始化FrenchStemmer: stemmer = nltk.stem.FrenchStemmer('french') 错误是: AttributeError: 'module' obj
这个问题已经有答案了: Microsoft Excel mangles Diacritics in .csv files? (22 个回答) 已关闭 3 年前。 我正在尝试生成不同语言的报告,例如法语
我有一个旧的 SQL4 数据库,我正在尝试将其重新上传到我们在 Phpmyadmin 上新创建的数据库。表中的字符是拉丁文和日文。我尝试更改这些特定列,但结果仍然是我需要以日语显示的列的损坏字符。 这
我有一个日期字符串,我想将其解析为日期时间对象。我有这个: $invoice = '9 février 2017' [datetime]::parseexact($invoice, 'dd MMMM
我只是想知道在网页上处理多种语言的最佳方法是什么?我应该在负载中创建一个事件,将所有控件的标签更改为适当的语言文本,还是有更好的方法?我正在使用.NET框架,谢谢。 最佳答案 对于 ASP.NET,请
我应该如何在一个供全局使用的网站上存储(和展示)多种语言的文本?内容主要是 500 多字文章的形式,尽管我还需要翻译每一页上的小段文字(例如“打印这篇文章”或“返回菜单”)。 我知道有几个 CMS 包
晚上好! 我在瑞典 Mac 上开发了一个英文宏。该宏在法国使用的带有法语 Excel 的 Mac 上运行。所有的子程序都工作得很好……但只有一个。我使用了公式“=VALUTA(123,4567)”[瑞
我是一名优秀的程序员,十分优秀!