如何从组合字符串中检测和拆分单词?
例:
"cdimage" -> ["cd", "image"]
"filesaveas" -> ["file", "save", "as"]
这是一个动态编程解决方案(实现为记忆功能)。给定具有频率的单词词典,它会将输入文本拆分为给出整体最可能短语的位置。您必须找到一个真实的单词表,但是为了简单的测试,我列出了一些虚构的频率。
WORD_FREQUENCIES = {
'file': 0.00123,
'files': 0.00124,
'save': 0.002,
'ave': 0.00001,
'as': 0.00555
}
def split_text(text, word_frequencies, cache):
if text in cache:
return cache[text]
if not text:
return 1, []
best_freq, best_split = 0, []
for i in xrange(1, len(text) + 1):
word, remainder = text[:i], text[i:]
freq = word_frequencies.get(word, None)
if freq:
remainder_freq, remainder = split_text(
remainder, word_frequencies, cache)
freq *= remainder_freq
if freq > best_freq:
best_freq = freq
best_split = [word] + remainder
cache[text] = (best_freq, best_split)
return cache[text]
print split_text('filesaveas', WORD_FREQUENCIES, {})
--> (1.3653e-08, ['file', 'save', 'as'])
我试图找出这种情况下的正则表达式模式,以便序列化结果: 我想捕捉所有有限制的单词/单词组合: 只有单词,没有数字或字符,除了撇号 中间有空格的单词要包含在一起 到目前为止,我已经想出了: 但我有尾随空格。所以这和“七月”匹配,而不是“七月”。如何在保留单词之间的空格的同时防止尾随空格。
问题内容: 我有一个像这样的词,它由两个简单的词组合而成,没有空格。 我想知道哪种Lucene Analyzer可以将这种单词标记为两个单独的单词? 问题答案: 有一个看作为在Solr的说明 该过滤器使用组成词的词典将复合词拆分或分解为单个词。每个输入令牌均不变地传递。如果还可以将其分解为子字,则每个子字也将在同一逻辑位置添加到流中。 在:“ Donaudampfschiff dummkopf”中
我有一些不同语言的文本,可能有一些拼写错误或其他错误,我想检索他们自己的词汇。一般来说,我对自然语言处理没有经验,所以可能我使用了一些不正确的单词。 关于词汇,我指的是一种语言的单词集合,其中每个单词都是唯一的,不考虑性别、数字或时态的屈折变化(例如,think、thinks和thought are都是考虑-思考)。 这是一个主要问题,所以让我们把它简化为一种语言的词汇检索,例如英语,并且没有错误
我如何从"CSV示例"创建一个像"最终结果"这样的数组? 背景 我正在构建一个用于测试的实验室文件系统,我想创建一个看起来有点像真实文件系统的文件夹结构。我有几个包含文件夹信息的CSV文件。 我想采用上面的每个组合,创建一个包含以下所有文件夹的文件系统。 一旦我有了上面所有完整路径的数组,就像做一样简单: 问题 我希望能够为任何CSV文件做到这一点,不管我有多少列,头名称是什么,或者每列有多少值。
问题内容: $(“#topNav” + $(“#breadCrumb2nd”).text().replace(” “, “”)).addClass(“current”); 这是我的代码的一部分。我想在获取另一个ID的text属性后向ID添加一个类。问题在于,持有我需要的文本的ID包含字母之间的空格。 我希望删除空白。我已经尝试过,但这只能部分起作用。该只删除第一个空间。 问题答案: 您必须告诉re
问题内容: 对于这个新手问题,我感到很抱歉,但是我对编程还是有点陌生(从几天前开始)。基本上我想做的是保留一个文件,并保留另一个文件的所有单词出现 我知道我可以这样做: 事情是,在那之后,我想获取第二个文件,再次计算出现次数并更新第一个文件。之后,我取第三份文件,依此类推。 我在做什么,此刻工作没有任何问题(我使用,和),但它看起来相当缓慢。 我很确定使用,仅使用命令就可以有一种非常有效的方法,但