对于踢(并刷新我的Python),我正在尝试创建一个算法,随机生成一个Haiku(日语诗由三行组成,每行有5,7和5个音节)。
我遇到的问题是找到一个单词中的音节数(我使用的是来自Ubuntu的en-US.dic)。
目前,我有一个运行的脚本试图获取this web site,报告的数字,但这很慢,并且没有产生很多命中。 This似乎更有希望,但我不知道如何使用Python在文本框中注入一个单词。
我的问题是双重的:
答案 0 :(得分:3)
对于第二部分,如果您使用Chrome,请右键单击"计算字数"按钮并选择"检查元素"。您会看到POST
是/index.php
的一个表单,其中包含一些相关内容:
name="text"
name="optionSyllableCount"
name="optionWordCount"
(后两个是输入复选框,通常需要POST值)。
import urllib
url = 'http://www.wordcalc.com/index.php'
post_data = urllib.urlencode(
{'text': 'virgina'})
post_data = '%s&optionSyllableCount&optionWordCount' % post_data
cnxn = urllib.urlopen(url, post_data)
response = cnxn.read()
cnxn.close()
如果您想解析回复,请:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(response)
h3_matches = [h3 for h3 in soup.findAll('h3') if h3.text == 'Statistics']
if len(h3_matches) != 1:
raise Exception('Wrong number of <h3>Statistics</h3>')
h3_match = h3_matches[0]
table = h3_match.findNextSibling('table')
td_matches = [td for td in table.findAll('td')
if td.text == 'Syllable Count']
if len(td_matches) != 1:
raise Exception('Wrong number of <td>Syllable Count</td>')
td_match = td_matches[0]
td_value = td_match.findNextSibling('td')
syllable_count = int(td_value.text)
答案 1 :(得分:3)
下载Moby Hyphenated Word List。它有大多数英文单词和名称用音节连字。音节数量是连字符标记的数量+空格数+实际连字符数+ 1。