自然语言处理 - 初学者项目的想法

时间:2010-04-03 18:53:14

标签: python nlp nltk

我是NLP和NLTK的初学者。我对NLP非常感兴趣 在一些当地机构参加了关于AI的周末课程,这需要我 做一个完成课程的项目,我决定在NLP中完成。问题是,导师对这门课程并不擅长(据我说她 只是一个骗子)(或者对教学不太感兴趣 这是她最后一批,此后学院将发送 她出去了)。所以我陷入了完成任务的境地 这个项目在一个月到一个半月的时间里,但作为一个天真 在外地的人我觉得很难理解 决定项目所需的事情。 (另外,因为我正在全力以赴 时间,我没有找到足够的时间专注于此。)

由于以下原因,我考虑在python中使用NLTK工具包。 (1)Python以易用性,快速原型设计和非常活跃的社区而闻名(考虑到我的时间非常短,而且由于我是专业的C程序员,我需要一种能够快速学习且易于学习的语言使用)。

(2)NLTk有很好的评论,广泛的文档和非常活跃的社区。

所以问题是我应该采取什么样的项目,这样我才能学到一些东西,并能够及时完成项目。 (我对NLP几乎一无所知,甚至不知道什么是语料库...... :()

所以,请为我提出一些我应该考虑的项目主题。

此致

MicroKernel:)

4 个答案:

答案 0 :(得分:11)

大多数“初学者”项目旨在重新实现众所周知的算法,因此初学者可以通过针对已知解决方案验证其结果来学习。为此,我建议一些简单的东西,比如电子邮件垃圾邮件过滤器。您首先要创建一个培训文件,即将几个真实电子邮件的文本复制到CSV文件中,并手动将其标记为垃圾邮件或非垃圾邮件,例如:

text|is_spam
hi bob! how are you?|0
what time are you coming over|0
how to buy viagra now!|1

接下来,您将以与培训文件相同的格式创建一个测试文件,但显然有不同的示例。

然后,您将创建分类器/垃圾邮件过滤器。有许多不同的方法来实现垃圾邮件过滤器,但最基本的方法是简单地计算出现一个单词的频率is_spam = 0和is_spam = 1。例如,根据上面的培训文件,单词“viagra”与1个垃圾邮件分类相关联,但是0个非垃圾邮件分类,因此未来包含“viagra”一词的电子邮件也可能被归类为垃圾邮件。同样,“how”一词出现在1封垃圾邮件和1封非垃圾邮件中,因此不太可能表明明确的分类。

然后,您将训练文件中的分类器训练,并通过在测试文件上运行来计算其准确性。

如果上述方法过于简单,您可以通过首先标记词性来计算n-gram(单词组)或甚至语法结构来增加其复杂性(例如,大量垃圾邮件通常是随机垃圾填充的使用关键字,非垃圾邮件通常有一定意义)。您可以实现几种不同的分类器,并比较它们的准确性。

当然,它还有更多,但这些方法在互联网上有详细记录,这是你的项目所以由你来进一步研究它。祝你好运。

答案 1 :(得分:7)

一些想法:

  • 一个程序,用于猜测输入文件的语言。您需要一些不同语言的样本;维基百科是一个很好的来源。

  • 基于文本语料库构建类似于语料库中的单词或句子的程序。

  • 找到与Voynich Manuscript有趣的内容。您可以找到转录here

(顺便说一句,“语料库”只是“一堆文字”的一个奇特的词。来自Wikipedia:“一大堆结构化的文本(现在通常以电子方式存储和处理)。”通常是指用于训练和测试算法的文本,而不是它在现场会遇到的未知文本。)

答案 2 :(得分:1)

尝试处理像Kaggle这样的网站上发布的挑战。他们有一些有趣的挑战,例如免费提供数据的detecting insults in social commentary

答案 3 :(得分:0)

您可以使用NLP在VOIP电话上记录客户支持电话的某些部分。用户输入的其他选项可以从键盘获取。有了这个系统,您就可以不再需要支持人员。例如 - 使用基于语音的授权将密码重置为组织中的电子邮件ID。