是否有用于将文本从一种人类语言翻译成另一种语言的Python模块?我打算使用Python脚本进行前后处理的文本.还可以使用哪些其他Python集成方法?
假设您应该在线监控品牌"ONE".可以使用哪些算法将关于品牌ONE的页面与包含常用词ONE的页面分开?
我想也许贝叶斯可以工作,但还有其他方法吗?
我非常喜欢发现可以很快敲击的句子.例如,"必须读一点维基百科"或"不想用一瓶麦芽在阴沟里结束".(乔治·沃茨基)
我想用Python编写一个程序,使我能够找到可以清晰表达的单词(或单词组合),使其在说话时听起来非常快.
我最初认为具有高音节比率的单词将是最好的,但是在编写Python程序来找到这些单词时,我只检索了非常简单的单词,这些单词听起来并不快(例如"iowa").
所以我对实际上听起来很快的话语感到茫然.这是语素与字母的比率吗?它是交替的元音 - 辅音对的数量吗?
你们将如何设计一个python程序来解决这个问题?
即,它将任何句子/短语作为输入并自动计算出树形图.
我正在寻找一种方法来查看句子/短语的树结构,这些句子/短语的树形结构我不确定如何绘制.
我的任务是在文本中搜索陈词滥调和常用短语.这些短语类似于你可能在"命运之轮"上的短语拼图中看到的短语.这里有一些例子:
但是我找不到一个短语列表.有人知道这样的清单吗?
说真的,即使是所有Wheel of Fortune解决方案的清单也足够了.
TL; DR摘要:我需要一个命令行应用程序,我可以使用它来获取同义词和其他相关单词.它需要多语言,跨平台工作.任何人都可以为我推荐一个合适的程序,或者帮助我找到我已经找到的程序?谢谢.
更长的版本:
我的任务是编写一个PHP系统,可以为用户输入的单词提供替代建议.我需要找到一个同义词库应用程序/ API或类似的,我可以用来生成这些建议.
重要的是,它需要多语言(英语,丹麦语,法语和德语).这排除了我使用Google设法找到的大部分软件.它还需要跨平台(它需要在Linux和Windows上运行).
我的研究让我有两个有希望的候选人:WordNet和Stardict.
到目前为止,我一直专注于WordNet,使用该shell_exec()
函数从PHP调用它,并且我已经设法使用它来创建一个非常有前途的原型PHP页面,但到目前为止只用英语.我正在努力学习如何多语言使用它.
Wordnet站点有外部链接到其他语言的Wordnet项目(例如DanNet for Danish),但是虽然它们通常被称为Wordnet,但它们似乎使用各种数据库格式和软件,这使得它们不适合我.我需要一个可以从我的PHP程序调用的一致接口.
从这个角度来看,Stardict看起来更有希望:它们以标准数据库格式为一个应用程序提供多种语言的字典.
但Stardict的缺点是它主要是一个GUI应用程序.从命令行调用它会启动GUI.显然有一个命令行版本(SDCV),但它似乎已经过时了(上次更新2006),并且仅适用于Linux.
任何人都可以帮助我解决这些程序中的问题吗?或者,任何人都可以建议我可以使用的任何其他替代软件或API吗?
非常感谢.
nltk或任何其他NLP工具是否允许基于输入句子构造概率树,从而将输入文本的语言模型存储在字典树中,以下示例给出了粗略的想法,但我需要相同的功能,使得单词Wt可以不仅仅是对过去的输入词(历史)Wt-n进行概率建模,而且还对Wt + m等前瞻性词进行概率建模.此外,回顾和前瞻字数也应该是2或更多,即bigrams或更多.python中有没有其他库可以实现这个目的?
from collections import defaultdict
import nltk
import math
ngram = defaultdict(lambda: defaultdict(int))
corpus = "The cat is cute. He jumps and he is happy."
for sentence in nltk.sent_tokenize(corpus):
tokens = map(str.lower, nltk.word_tokenize(sentence))
for token, next_token in zip(tokens, tokens[1:]):
ngram[token][next_token] += 1
for token in ngram:
total = math.log10(sum(ngram[token].values()))
ngram[token] = {nxt: math.log10(v) - total for nxt, v in ngram[token].items()}
Run Code Online (Sandbox Code Playgroud)
解决方案需要前瞻和回顾,特殊的子类字典可能有助于解决这个问题.也可以指向谈论实现这样一个系统的相关资源.nltk.models似乎做了类似的事情,但已不再可用.NLP中是否存在实现此想法的现有设计模式?基于跳过克的模型也类似于这个想法,但我觉得这应该已经在某处实现了.
我正在尝试将字符串中出现的电话(字符)列表,但是变音符号会自行列表为字符.理想情况下,我在国际音标中有一个单词表,有相当数量的变音符号和它们与基本字符的几种组合.我在这里只给出了一个单词的MWE,但是单词列表和更多类型的组合也是如此.
> word <- "n?ana" # word constituted by 4 phones: [n?],[a],[n],[a]
> table(strsplit(word, ""))
? a n
1 2 2
Run Code Online (Sandbox Code Playgroud)
但想要的结果是:
a n n?
2 1 1
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得这种结果?
输入是:
(1)带有标记内部节点的树的括号表示,例如:
(S (N John) (VP (V hit) (NP (D the) (N ball))))
Run Code Online (Sandbox Code Playgroud)
输出:
(线是否为虚线以及标题是否存在并不重要.)
或输入可能是:
(2)对没有标签的单词进行包围,例如:
((John) ((hit) ((the) (ball))))
Run Code Online (Sandbox Code Playgroud)
输出与上面相同(这次没有内部标签,只有树形结构).
输入的另一个组成部分是树是标记为(1)还是未标记为(2).
我的问题:在javascript中在浏览器中呈现这些树的最佳方式(最快的开发时间)是什么?一切都应该发生在客户端.
我想象一个简单的界面只有一个文本框(和一个单选按钮,指定它是否是标记的树),当更改时,触发树渲染(如果输入没有任何语法错误).
我正在使用卡内基梅隆大学的发音词典检测Python中的押韵,并且想知道:我如何估计两个单词之间的音素相似度?换句话说,是否有一种算法可以识别"手"和"计划"比"手"和"薯条"更接近押韵的事实?
一些上下文:首先,我愿意说两个单词押韵,如果它们的主要重读音节和所有后续音节相同(如果你想在Python中复制,则为c06d):
def create_cmu_sound_dict():
final_sound_dict = {}
with open('resources/c06d/c06d') as cmu_dict:
cmu_dict = cmu_dict.read().split("\n")
for i in cmu_dict:
i_s = i.split()
if len(i_s) > 1:
word = i_s[0]
syllables = i_s[1:]
final_sound = ""
final_sound_switch = 0
for j in syllables:
if "1" in j:
final_sound_switch = 1
final_sound += j
elif final_sound_switch == 1:
final_sound += j
final_sound_dict[word.lower()] = final_sound
return final_sound_dict
Run Code Online (Sandbox Code Playgroud)
如果我然后跑
print cmu_final_sound_dict["hands"]
print cmu_final_sound_dict["plans"]
Run Code Online (Sandbox Code Playgroud)
我可以看到手和计划听起来非常相似.我可以自己估计这种相似性,但我想我应该问:是否有复杂的算法可以将数学值与这种声音(或听觉)相似度联系起来?也就是说,可以使用哪些算法或包来对两个单词之间的音素相似度进行数学计算?我意识到这是一个很大的问题,但我非常感谢其他人可以就这个问题提出的建议.
linguistics ×10
nlp ×6
python ×4
algorithm ×3
cpu-word ×1
data-mining ×1
dictionary ×1
javascript ×1
nltk ×1
phoneme ×1
php ×1
r ×1
rendering ×1
thesaurus ×1
unicode ×1