- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试想出一个函数,它接受像
这样的条目"businessidentifier", "firstname", "streetaddress"
和输出
"business identifier", "first name", "street address"
这似乎是一个涉及 NLP 的相当复杂的问题,因为该函数必须遍历字符串并针对词汇表进行测试以查看它何时到达词汇表中的单词,但对于第一个示例“businessidentifier”可能首先被视为“bus I ness identifier”。有没有人遇到过完成此任务的功能?
最佳答案
首先我们需要得到很多英文单词,我用了nltk这里。然后我将所有单词加载到 dict 中,以便所有以 'a' 开头的单词都在关键字 'a' 下的 dict eng_dict
中,以便更快地搜索单词。然后我根据长度对所有单词进行排序,这样当我们在句子中查找单词时,我们首先会尝试将其与最长的单词进行匹配,因此给定“businessidentifier”我们将首先检查“business”而不是“bus” .现在我们的单词格式很好,我们可以创建函数来将我们的句子与该单词匹配。在这里,我创建了循环函数,它试图匹配所有以与句子相同的字母开头的单词,如果我们找到一个,然后将它添加到我们的返回列表中,并循环寻找下一个。
from nltk.corpus import words
word_list = words.words()
eng_dict = {chr(i): sorted([word for word in word_list if word[0] == chr(i)], key=len, reverse=True) for i in range(ord('a'), ord('z')+1)}
def split_into_words(x):
ret = []
for word in eng_dict[x[0]]:
if x.startswith(word):
ret.append(word)
x = x[len(word):]
break
if len(x) != 0:
ret.extend(split_into_words(x))
return ret
raw_sentences = ["businessidentifier", "firstname", "streetaddress"]
finall_sentence = [split_into_words(i) for i in raw_sentences]
print(finall_sentence)
输出:
[['business', 'identifier'], ['first', 'name'], ['street', 'address']]
关于用于将串在一起的单词拆分为单个单词的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53487850/
我正在尝试创建一个程序,其中字符串的前三个字符重复给定次数,如下所示: foo('Chocolate', 3) # => 'ChoChoCho' foo('Abc', 3) # => 'AbcAbcA
我有以下字符串: std::string str = "Mode:AAA:val:101:id:A1"; 我想分离一个位于 "val:" 和 ":id" 之间的子字符串,这是我的方法: std::st
DNA 字符串可以是任意长度,包含 5 个字母(A、T、G、C、N)的任意组合。 压缩包含 5 个字母(A、T、G、C、N)的 DNA 字母串的有效方法是什么?不是考虑每个字母表 3 位,我们可以使用
是否有一种使用 levenstein 距离将一个特定字符串与第二个较长字符串中的任何区域进行匹配的好方法? 例子: str1='aaaaa' str2='bbbbbbaabaabbbb' if str
使用 OAuth 并使用以下函数使用我们称为“foo”(实际上是 OAuth token )的字符串加密 key public function encrypt( $text ) { // a
我是一名优秀的程序员,十分优秀!