如何使用python将wikipedia页面拆分为段落?

如何使用python将wikipedia页面拆分为段落?,python,text,split,wikipedia,paragraph,Python,Text,Split,Wikipedia,Paragraph,我使用Python wikipedia库提取wikipedia页面的内容。我想处理此内容的每个段落(例如,计算每个段落的字数)。将维基百科内容分成段落的最佳方式是什么 将wikipedia导入为wikipedia def getPage(标题): content=wikipedia.page(title).content #对于内容中的每个段落,请执行以下操作: #... 坏方法 图书馆不提供此类信息 在本例中,您可以看到返回的页面内容不包含大多数布局元素: 导入维基百科 打印(wikipedi

我使用Python wikipedia库提取wikipedia页面的内容。我想处理此内容的每个段落(例如,计算每个段落的字数)。将维基百科内容分成段落的最佳方式是什么

将wikipedia导入为wikipedia
def getPage(标题):
content=wikipedia.page(title).content
#对于内容中的每个段落,请执行以下操作:
#...
坏方法 图书馆不提供此类信息

在本例中,您可以看到返回的页面内容不包含大多数布局元素:

导入维基百科
打印(wikipedia.page(“纽约市”).content)
“[……]和体育。纽约是联合国总部所在地,是重要的国际外交中心。位于世界最大的天然港口之一,[……]”

当然也有一些提示,但这些都是冗长乏味的分析:

  • 像上面这样的一些段落拆分在上一段的最后一段之后没有空格
  • 标题使用的符号类似于
    ==MyTitle==\n
  • 换行符被打印出来

定义的维基百科部分 如果要查找已定义的节,请尝试使用更活跃、更完整的库

有了它,您可以轻松获得以下部分:

导入wikipediaapi
page_py=wikipediapi.Wikipedia('en')。page('New_York_City'))
打印(第页,第[0]节,文本)
1664年,这座城市以约克公爵的名义命名,[…]从荷兰人手中夺走了它

这种方法可以提供非常清晰的文本,但无法识别章节中的段落


Html段落 但是,如果要查找定义为
..

的段落,则需要解析html并进行一些清理

以下是实现这一目标的一种方法(使用):

导入bs4
导入请求
导入Unicode数据
进口稀土
def get_段落(页面名称):
r=请求。获取('https://en.wikipedia.org/api/rest_v1/page/html/{0}.格式(页面名称))
汤=bs4.BeautifulSoup(r.content)
html\u段落=soup.find\u all('p')
对于html_段落中的p:
已清理的\u text=re.sub(“(\[[0-9]+\]),”,unicodedata.normalize('NFKD',p.text)).strip()
如果清除了U文本:
产生清晰的文本
打印(列表(获取段落(“纽约市”))[0])
纽约市(NYC),通常简称纽约,是美国人口最多的城市。[…]是联合国总部所在地,纽约是重要的国际外交中心


尽管清理工作并不完美,但这种方法可能是最好的。

非常感谢您完整而清晰的解释。