Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 475631
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T00:24:28+00:00 2026-05-13T00:24:28+00:00

I have to do a final project for my computational linguistics class. We’ve been

  • 0

I have to do a final project for my computational linguistics class. We’ve been using OCaml the entire time, but I also have familiarity with Java. We’ve studied morphology, FSMs, collecting parse trees, CYK parsing, tries, pushdown automata, regular expressions, formal language theory, some semantics, etc.

Here are some ideas I’ve come up with. Do you have anything you think would be cool?

  1. A script that scans Facebook threads for obnoxious* comments and silently hides them with JS (this would be run with the user’s consent, obviously)

  2. An analysis of a piece of writing using semantics, syntax, punctuation usage, and other metrics, to try to “fingerprint” the author. It could be used to determine if two works are likely written by the same author. Or, someone could put in a bunch of writing he’s done over time, and get a sense of how his style has changed.

  3. A chat bot (less interesting/original)

I may be permitted to use pre-existing libraries to do this. Do any exist for OCaml? Without a library/toolkit, the above three ideas are probably infeasible, unless I limit it to a very specific domain.

Lower level ideas:

  1. Operations on finite state machines – minimizing, composing transducers, proving that an FSM is in a minimal possible state. I am very interested in graph theory, so any overlap with FSMs could be a good venue to explore. (What else can I do with FSMs?)

  2. Something cool with regex?

  3. Something cool with CYK?

Does anyone else have any cool ideas?

*obnoxious defined as having following certain patterns typical of junior high schoolers. The vagueness of this term is not an issue; for the credit I could define whatever I want and target that.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T00:24:29+00:00Added an answer on May 13, 2026 at 12:24 am
    1. Obnoxious language filtering – I think this will reduce down to a process very similar to spam email filtering. That is, counting the frequency of a set of more-or-less ‘obnoxious’ words. It doesn’t sound like you will get the scope to do anything particularly clever, unless you also use other sources of information (e.g. the structure of the social links shared between the sender and recipient, perhaps). On the other hand, online bullying is a very serious thing and you can bet Facebook/Myspace and the other social networking sites care a lot about tackling it.

    2. Stylistic Analysis – There has been some work done on this in various forms, often under the name authorship analysis. Shlomo Argamon does a lot of work in this area and you could probably discover a lot more from the references in his papers. One of the best ways to profile an author is to learn the distribution of their usage of a set of stopwords (a.k.a functional words), such as ‘and’ ,’but’, ‘if’, etc. I think there’s a lot more scope to do something new and interesting in this area – authorship analysis on internet data is a hard problem – but also a lot more scope to fail.

    3. Chat bot – You’re right, this is a pretty standard project. It’s also quite hard to measure success/failure. I think the project would be more compelling if it was a chat-bot with some kind of purpose, like answering questions in a limited domain, but that’s something that’s very difficult to do well.

    The rest are really too vague to make any comments on, sorry.

    There aren’t any NLP libraries that I know of in OCaml, it’s just not a particularly popular programming language. However, I do know of a machine learning library in Ocaml, called MEGAM, written by Hal Daume, who is a very good NLP researcher, which has been used for NLP tasks. I get a feeling that figuring out MEGAM and using it to do some NLP task might be too big a project to take on, however.

    Some other ideas:

    • Sentiment Analysis – A very trendy area of research. You could make this task as easy or hard as you like, from scoring a document as positive/negative to extracting specific topics and generating a sentiment score for each one.
    • Coreference/Anaphora resolution – A difficult task but a very important one. Some approaches use a graph representation (each mention is a node with edges between them if they co-refer) to enforce things like transitivity.
    • Document Classification – You could try and learn a system on the StackOverflow data set to suggest tags for a given question. It’s a fairly well known problem with some established techniques, but an it’s interesting data set and has an obvious and useful application to the real world . You could also see if you can find specific features of a question (word choice, length, formatting, punctuation, etc.) that cause them to be voted highly.
    • Haiku Generation – Kind of a silly one, but I always thought it was an interesting idea. Syllable counting could be done with the CMU pronouncing dictionary. Should be a lot of fun, if not particularly useful.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We have been using Google Code SVN to store a school project. As we
I have a class on low-level programming which requires a final project (syllabus at
Say I have class A with class A { final String foo() { //
The ASP.NET MVC 1.0 (final) project template has basic membership built in, but I
As my final project I wanted to do client for Facebook and Twitter using
I have to do my final year project and I'm planning to use a
My final year project topic is Web-services using SOA. In this we were planning
Some of my classes have final fields that are populated from the constructor as
Today my colleagues and me have a discussion about the usage of the final
Have just started using Google Chrome , and noticed in parts of our site,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.