gpt4 book ai didi

data-mining - 查找数据集中出现在多行中的所有两个单词短语

转载 作者:行者123 更新时间:2023-12-02 17:54:09 26 4
gpt4 key购买 nike

我们希望运行一个查询,返回出现在多行中的两个单词短语。所以对于例如获取字符串“Data Ninja”。由于它出现在我们的数据集中的不止一行中,因此查询应该返回该行。查询应该通过查询数据集中的行中的两个相邻单词组合(形成短语)来从数据集中的所有行中找到所有此类短语。这两个相邻的单词组合应该来 self 们加载到 BigQuery 中的数据集

我们如何在 Google BigQuery 中编写此查询?

数据集只是一长串英语句子。

最佳答案

好消息:BigQuery 现在支持 SPLIT()。检查https://stackoverflow.com/a/24172995/132438 .

<小时/>

这是一个黑客,但我碰巧喜欢一个黑客:)。

在目前的形式中,它仅适用于包含 2 个以上单词的句子,并且仅提取前 6 对。您可以从这里扩展和测试。

在您的数据上尝试一下,然后请报告。

SELECT pairs, COUNT(*) c FROM
(
SELECT REGEXP_REPLACE(title, '([^\\s]+ ){0}([^\\s]* [^\\s]+).*', '\\2') pairs, title
FROM [bigquery-samples:reddit.full]
),
(
SELECT REGEXP_REPLACE(title, '([^\\s]+ ){1}([^\\s]* [^\\s]+).*', '\\2') pairs, title
FROM [bigquery-samples:reddit.full]
),
(
SELECT REGEXP_REPLACE(title, '([^\\s]+ ){2}([^\\s]* [^\\s]+).*', '\\2') pairs, title
FROM [bigquery-samples:reddit.full]
),
(
SELECT REGEXP_REPLACE(title, '([^\\s]+ ){3}([^\\s]* [^\\s]+).*', '\\2') pairs, title
FROM [bigquery-samples:reddit.full]
),
(
SELECT REGEXP_REPLACE(title, '([^\\s]+ ){4}([^\\s]* [^\\s]+).*', '\\2') pairs, title
FROM [bigquery-samples:reddit.full]
),
(
SELECT REGEXP_REPLACE(title, '([^\\s]+ ){5}([^\\s]* [^\\s]+).*', '\\2') pairs, title
FROM [bigquery-samples:reddit.full]
)
WHERE pairs != title
GROUP EACH BY pairs
HAVING c > 1
LIMIT 1000

结果可能包含 NSFW 单词。示例数据集来自尚未“清理”的在线社区。如果您对某些单词敏感,请避免运行查询。

关于data-mining - 查找数据集中出现在多行中的所有两个单词短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18709547/

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