gpt4 book ai didi

c# - 搜索维基百科,使用 C# 获取在所有可用语言中找到的第一个条目的第一段?

转载 作者:行者123 更新时间:2023-11-30 17:04:50 25 4
gpt4 key购买 nike

假设,我有一个用一种语言写的观光列表,我想用维基百科的一些数据来丰富这个列表。

所以,我有以下数据 -- 城市是慕尼黑,它有以下景点:

  • 圣母教堂
  • 玛利亚广场
  • 卡尔广场

我需要执行以下操作:

  1. 用给定的语言向维基百科发送查询(在本例中是德语,因为德语维基更有可能有相应的文章)。
  2. 找到文章后,我想获取其页面标题和前 2-3 段。
  3. 我想剥离所有 Wiki 标记并仅获取文本。
  4. 最好能有这篇文章的正文和标题的原文(“de”)和其他一些语言。

我尝试了 NuGet 存储库中的 Linq-to-Wiki,但我无法让这个场景运行...这是我的代码,它正好超时:

var enwiki = new Wiki("LinqToWiki.Samples", "en.wikipedia.org", "/w/api.php");
var result = enwiki.Query.allpages()
.Pages
.Select (
page =>
new
{
Title = page.info.title,
Text = page.revisions()
.Where( r => r.section == "0")
.Select( r => r.value)

);

最佳答案

如果您知道相关文章的标题,您可以这样做:

var titles = wiki.CreateTitlesSource(
"Munich Frauenkirche", "Marienplatz", "Karlsplatz (Stachus)");
var pages =
titles.Select(
page => new
{
Title = page.info.title,
Text = page.revisions()
.Where(r => r.section == "0" && r.parse)
.Select(r => r.value)
.FirstOrDefault(),
LangLinks = page.langlinks().ToEnumerable()
}).ToEnumerable();

LangLinks 将包含不同语言的文章标题。

Text 将包含第一部分的 HTML。如果您认为 wikitext 会更好,您可以通过删除 && r.parse 来获得它。

还有 extracts 模块似乎支持获取实际明文,但 LinqToWiki 目前不支持该模块。

关于c# - 搜索维基百科,使用 C# 获取在所有可用语言中找到的第一个条目的第一段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com