我正在尝试解析特定的html响应。我已经以连续字符串的形式从页面中成功提取了文本。
例如:
睡鼠的故事睡鼠的故事曾经有三个小姐妹,他们的名字是艾尔西·拉西和蒂莉,他们住在一口井的底部 块引用
我的第一个问题是我需要拆分字符串以获得单个单词 例如:
应将storyOnce
转换为有意义的单词列表......
[在,...,故事,一旦,...]
我还需要摆脱" \ n"字符。我尝试使用
.strip
但它似乎不起作用。我认为我可能以错误的方式使用它。 我是新手所以请详细说明答案。这将有所帮助。
答案 0 :(得分:3)
你可能想要text segmentation。从旧的链接我收藏this似乎为您完成任务。您也可以使用NLTK segmentation。
答案 1 :(得分:3)
要删除\n
字符,只有在字符串的开头和结尾处才会有效。
如果您最终在split
分割
\n
代替并在不使用\n
的情况下附加字符串
对于你的初始问题,因为文本完全与你提取它一样,我要做的就是首先分割空间
string.split(' ')
将提供类似
的内容[The, Dormouse's, storyThe, Dormouse's, storyOnce, upon, a, time,...]
然后您可以使用智能算法进行一些简单的字典映射,如下所示:
迭代结果列表:
这是text segmentation问题,因此您需要使用某种形式的自然语言处理来进行标记化和文本提取。
@WannaBeCoder下面建议NLTK平台并在此预订: http://www.nltk.org/book/
玩得开心,这很有挑战性和酷感!
答案 2 :(得分:1)
我正在创建一个类似的程序。我使用.split()从句子创建了一个单词列表。并将其与字典进行比较。然后是未知的单词。我使用二进制映射并创建了所有可能的块组合。然后从这些组合中我分离了独特的块。并将其与字典进行比较。现在我有了所有可能的组合,包括来自字典的单词中的未知单词和部分。我比较了两个未知单词的每个可能的块组合,这样我就有了最少的可能(块的数量 - 字典中的单词数量)。
但我的方法很耗时。并且存在像'loveisnowhere'这样模棱两可的问题。
答案 3 :(得分:0)
import re
ans = ""
for a in re.findall('[A-Z][^A-Z]*',"The Dormouse's storyThe Dormouse's storyOnce upon a time there were three little sisters and their names wereElsie LacieandTillie \nand they lived at the bottom of a well Blockquote"):
ans+=a.strip()+' '
ans
"The Dormouse's story The Dormouse's story Once upon a time there were three little sisters and their names were Elsie Lacieand Tillie \nand they lived at the bottom of a well Blockquote "