趋势聊天
趋势聊天:跟踪、分析和聊天来自小众在线社区的趋势。获得由 BrightData 和 AI 提供支持的可行见解。
**Trend Chat** 是一款功能强大的工具,可让用户跟踪、分析和互动来自各种在线社区的趋势。无论您是企业主、营销人员还是希望保持领先地位的爱好者,Trend Chat 都能实时洞察与您的行业最相关的对话。
通过利用**BrightData**进行网络抓取和**AI**进行生成分析,Trend Chat 允许用户收集相关数据,对其进行分析以获得可行的见解,并与这些趋势进行聊天以做出明智的决策。
我建造了什么
**Trend Chat** 旨在解决当今快节奏数字世界中的信息过载问题。它使用户能够跟踪小众在线社区的趋势,从各种网站抓取数据,分析这些数据以发现关键见解,并通过简单的聊天界面与这些见解互动。
主要特点:
通过**趋势聊天**,用户可以轻松掌握新兴趋势,发现潜在的商机,并自信地做出数据驱动的决策。
演示
您可以在以下位置探索**Trend Chat**的现场演示:
趋势聊天演示
截图:
如何使用 Bright Data
Bright Data 在 **Trend Chat** 中发挥着至关重要的作用,它提供了支持从 **Reddit** 收集数据的 Web 抓取基础设施。使用 **Bright Data Scraping Browser**,我可以:
与 Bright Data 的整合使得 **Trend Chat** 能够提供来自小众在线社区的实时、动态见解。
使用 Bright Data API (Typescript) 抓取 Reddit 数据的示例代码
// Function to generate the Reddit search URL based on the keyword
function generateRedditSearchUrl(keyword: string): string {
const encodedKeyword = encodeURIComponent(keyword);
return `https://www.reddit.com/search/?q=${encodedKeyword}`;
}
// Function to scrape Reddit posts based on a search URL
async function scrapeRedditPosts(searchUrl: string) {
const browser = await puppeteer.connect({
browserWSEndpoint: "puppeteer ndpoint from your scraping browser",
});
console.log("Connected to browser...");
const page = await browser.newPage();
await page.goto(searchUrl, { waitUntil: 'domcontentloaded' });
console.log("Navigated to Reddit search page");
await page.waitForSelector('div[data-testid="post-container"]', { timeout: 30000 });
const posts = await extractPostData(page);
await browser.close();
return posts;
}
// Function to extract post data from the Reddit search results page
async function extractPostData(page: puppeteer.Page) {
return await page.evaluate(() => {
const postElements = document.querySelectorAll('div[data-testid="post-container"]');
const posts = [];
postElements.forEach((postElement: Element) => {
const title = postElement.querySelector('h3')?.innerText;
const author = postElement.querySelector('[data-testid="post_author_link"]')?.innerText;
const upvotes = postElement.querySelector('[data-click-id="upvote"]')?.textContent;
const comments = postElement.querySelector('[data-click-id="comments"]')?.textContent;
posts.push({ title, author, upvotes, comments });
});
return posts;
});
}用于命名实体提取的人工智能
为了从抓取的帖子中提取有价值的信息,**Trend Chat** 使用由 **Transformers** 库支持的 **AI 模型** 进行 **命名实体识别 (NER)**。这使我们能够从数据中识别和提取关键实体,例如人物、地点、组织或任何其他相关关键字。
我们使用 Hugging Face Transformers 库中预先训练的 **NER 模型** 来分析 Reddit 帖子并识别产品名称、热门话题等实体。
使用 Transformers (Typescript) 进行命名实体识别 (NER) 的示例代码
import { pipeline } from 'transformers'; // Importing the HuggingFace pipeline for NER
const nerModel = pipeline('ner', 'dbmdz/bert-large-cased-finetuned-conll03-english'); // Pre-trained NER model
const extractEntities = async (text: string) => {
const entities = await nerModel(text);
return entities;
};
const sampleText = "I love programming in Python and recently explored Next.js for building dynamic web apps!";
extractEntities(sampleText).then(entities => {
console.log('Extracted Entities:', entities);
}).catch(error => console.error('Error extracting entities:', error));可以进一步分析提取的实体以发现趋势或见解,例如频繁提及特定主题、品牌名称甚至即将出现的技术。
结合两者
async function main() {
const prompt = "Tell me about recent discussions on code editors and their features, especially AI-powered editors"; // Example prompt
// Step 1: Extract keywords
const keywords = await extractEntities(prompt);
console.log("Extracted Keywords: ", keywords);
// Step 2: Search Reddit for the extracted keyword(s)
for (const keyword of keywords) {
const searchUrl = generateRedditSearchUrl(keyword);
console.log(`Searching for "${keyword}" on Reddit...`);
// Step 3: Scrape the posts for the keyword
const posts = await scrapeRedditPosts(searchUrl);
console.log(`Found ${posts.length} posts related to "${keyword}":`);
console.log(posts);
}
}
// Run the main function
main().catch(error => {
console.error("Error running the pipeline:", error);
});帖子的命名实体提取
import { pipeline } from '@huggingface/transformers';
// Example of Reddit post data (this would be scraped using BrightData)
const redditPosts = [
"Tesla's stock price surged after the announcement of their new electric car model in Berlin.",
"Apple released new MacBook Pro models with improved performance and battery life."
];
// Initialize the NER pipeline
async function performNamedEntityRecognition(posts: string[]) {
try {
// Use Hugging Face's NER pipeline with a pre-trained model
const nlp = await pipeline('ner', 'dbmdz/bert-large-cased-finetuned-conll03-english');
// Loop through each Reddit post and extract named entities
const results = await Promise.all(
posts.map(async (post) => {
const entities = await nlp(post);
return { post, entities };
})
);
// Log the results
results.forEach((result) => {
console.log(`Post: ${result.post}`);
console.log("Entities:", result.entities);
console.log("-------------");
});
} catch (error) {
console.error("Error during NER:", error);
}
}
// Run NER on Reddit posts
performNamedEntityRecognition(redditPosts);技术堆栈
前端:
后端:
抓取:
验证:
工作原理
为何选择 Trend Chat?
在当今的数字世界中,了解和跟踪多个社区的趋势可能非常困难且耗时。**Trend Chat** 通过提供抓取、分析和与实时见解交互的一站式解决方案简化了此过程。
对于希望在竞争中保持领先并根据实时数据做出明智决策的企业、营销人员和爱好者来说,趋势聊天是完美的工具。
未来的改进
以下是对趋势聊天未来改进的一些想法:
为什么我有资格获得更多学分
结论
**Trend Chat** 提供独特的网页抓取、数据分析和 AI 洞察组合,帮助企业和个人掌握新兴趋势。通过利用 **BrightData** 进行抓取和利用 **AI 模型** 进行洞察,Trend Chat 提供实时、可操作的信息,帮助用户做出更好的数据驱动决策。无论您是跟踪趋势、分析社区对话还是制定业务战略,**Trend Chat** 都是您保持领先地位所需的工具。
感谢阅读!
感谢您关注**Trend Chat**!我希望此工具能帮助您更有效地跟踪、分析和与趋势互动。
链接:
DEV 挑战现已开始!

查看所有参与方式、证明您的技能并赢取奖品。
访问挑战中心