如何在 python 中拆分一首诗
How to split a poem in python
我正在尝试拆分包含斜杠的文本,该斜杠也将单词拆分为音节。
例如
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
result = re.split('; |/| |. |, ', text)
问题是我没有得到正确的音节数,也没有得到任何 space!
之前的最后一个字母
请帮忙!
在正则表达式中,"."
匹配任意字符,所以". "
匹配"{any character}{space}"
.
要匹配字面句点,需要使用"\."
或者放在字符集([.]
)中。
尝试
syllables = re.compile("[.,:;!?]? |/").split
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
print(syllables(text))
这给出了
['Hi', 'I', 'do', "n'", 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', '', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w.']
如果我没理解错的话,你可以使用str.translate和正常拆分:
from string import maketrans
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
tr = maketrans("/,.'"," ")
print(text.translate(tr)).split()
['Hi!', 'I', 'do', 'n', 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w']
如果您想像 do/n'/t
那样保留 '
:
tr = maketrans("/,."," ")
print(text.translate(tr)).split()
['Hi!', 'I', 'do', "n'", 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w']
如果您想保留句点,也请将其从 maketrans 中删除
我正在尝试拆分包含斜杠的文本,该斜杠也将单词拆分为音节。 例如
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
result = re.split('; |/| |. |, ', text)
问题是我没有得到正确的音节数,也没有得到任何 space!
之前的最后一个字母请帮忙!
在正则表达式中,"."
匹配任意字符,所以". "
匹配"{any character}{space}"
.
要匹配字面句点,需要使用"\."
或者放在字符集([.]
)中。
尝试
syllables = re.compile("[.,:;!?]? |/").split
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
print(syllables(text))
这给出了
['Hi', 'I', 'do', "n'", 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', '', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w.']
如果我没理解错的话,你可以使用str.translate和正常拆分:
from string import maketrans
text = "Hi! I do/n'/t know how ma/ny sy/lla/bu/s a/re the/re i/n thi/s te/x/te, who kno/w."
tr = maketrans("/,.'"," ")
print(text.translate(tr)).split()
['Hi!', 'I', 'do', 'n', 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w']
如果您想像 do/n'/t
那样保留 '
:
tr = maketrans("/,."," ")
print(text.translate(tr)).split()
['Hi!', 'I', 'do', "n'", 't', 'know', 'how', 'ma', 'ny', 'sy', 'lla', 'bu', 's', 'a', 're', 'the', 're', 'i', 'n', 'thi', 's', 'te', 'x', 'te', 'who', 'kno', 'w']
如果您想保留句点,也请将其从 maketrans 中删除