Showing posts with label IKVM. Show all posts
Showing posts with label IKVM. Show all posts

Wednesday, August 29, 2012

Mix OpenNLP, IKVM.Net and C# and you get some noun phrase and contextual relevance goodness

randonom - Extracting noun phrases with contextual relevance in .NET using OpenNLP

A few months ago I was working on a project that had a word cloud-like feature. A word cloud is an interesting way to visually represent a popular theme or topic. I had a dataset of user reviews from another project that we wanted to parse and use. This began my first exposure to Natural Language Processing (NLP) and other advanced text analytics tools.

...

A viable .NET implementation

Eventually I came across a wiki article entitled “A quick guide to using OpenNLP from .NET” that introduced me to a remarkable project called IKVM.NET. After generating a shiney new .NET OpenNLP assembly with the steps provided I was able to use the OpenNLP namespaces with ease in my project.

The first step in using the parsers in OpenNLP was to instantiate a model using Java streams. I created a base class for my NounPhraseParser with a utility method to help load these models.

...

Conclusion

I think this project worked out remarkably well. I don’t know if I’ll attempt to use something like this in a production environment, but if nothing else it was a very enlightening foray into the interesting world of Natural Language Processing. There are many other subjects in this area that I would like to explore, such as Sentiment Analysis and ways to identify subjects of significance in large bodies of text. As the IBM Watson project demonstrated to us not too long ago, this is a young field with staggering potential. The current trajectory of research along with significant advances in computation capability suggest it won’t be long before we can communicate with computers/information systems as easily as if you were talking to your best friend.

...

image..."

I can't believe it's been 6 years since I've blogged about OpenNLP (sigh, and I've still not worked on the project I had meant to when watching for it then... It's on the list still... but...). Anyway... If you've wanted to do natural language processing (NLP) and are looking for options, then check out Sean's post...

(via DotnetKicks - Extracting noun phrases with context in .NET using OpenNLP)

 

Related Past Post XRef:
SharpEntropy - Maximum Entropy Modeling
"Statistical parsing of English sentences"
WordNet

Java for .Net? Yep, the IKVM.NET way...
Java for .Net? Ja!
Java Implementation for Mono/.Net (IVKM.Net)

Friday, April 06, 2012

Java for .Net? Yep, the IKVM.NET way...

Channel 9 - Lang.NEXT 2012 - IKVM.NET: Building a Java VM on the .NET Framework

image

Java and .NET are like twins separated at birth, but what if you actually want to run your Java code on .NET? IKVM.NET aims to provide a full Java platform on top of the .NET Framework and in this talk we'll look at how this is accomplished and what the challenges are.

This, http://www.ikvm.net/, is one of those stealth projects that's been around for a while (my first post on it was in 2005, Java Implementation for Mono/.Net (IVKM.Net)), is used in a number of of other products and projects yet is one you don't hear much in and of itself.  If you've ever had java envy or found a jar that you wish was available for use in your .Net app, then you should check out IKVM.Net.

 

Related Past Post XRef:
Java for .Net? Ja!
Drooling for a free/OSS rules engine for .Net? The DROOLS.NET Primer
"Converting PDF to Text in C#" with PDFBox/IVKM.Net
Java Implementation for Mono/.Net (IVKM.Net)

Tuesday, December 16, 2008

Java for .Net? Ja!

InfoQ - Java 1.5 for the .NET Platform

“Ja.NET is a port of Java 1.5 SE to the .NET platform. The compiler is based on the Eclipse JDT, which has been modified to generate IL as well as Java Byte Code. Java traditionally compiles each class into a separate file, but this creates an unacceptable overhead for .NET. To address this, a tool based on Cecil is used to create larger assemblies much in the same way Jar files are created for Java.

In order to get a head-start on library support, the Ja.NET JDK is based on the open source project Apache Harmony …”

Ja.NET - Java Development Tools for .NET

“Welcome to Ja.NET -- a new web site building an open community dedicated to enabling Java as a first class development and runtime environment for .NET.  Our vision is simple: Establish a community of interest, together with a set of projects, focused on delivering the tools and middleware required to leverage the enormous investments that exist today in Java software on the .NET platform.

Our first project is the development of a Java 5 JDK for .NET. We've named it "Ja.NET SE", and we are making good progress towards delivering our first release. We are posting builds regularly, so feel free to download a build and give it a try. If you run into any problems, please let us know.

So if you have a need for Java on .NET, then we’d encourage you to get involved by joining the Ja.NET SE project or starting one of your own. Whether you have a specific Java on .NET need, or you just have an opinion you'd like to share with us, provide us some feedback below, or start up a forum discussion.

…”

Ja.NET - Java Development Tools for .NET - Ja.NET SE Overview

“…

Developer Scenerios

Ultimately, the goal of the Ja.NET SE project is to provide developers with the tools and runtime environment to support the following developer scenarios:

  • Take existing Java class library source code and recompile it using the Ja.NET SE JDK producing .NET versions of those libraries. The new libraries should be easily incorporated into new or existing .NET-based applications (likely written in other .NET languages). The existing Java-based source could be reused as is, or it could be extended to incorporate or integrate new capabilities found in other .NET-based class libraries.
  • Take an existing Java-based application, recompile the source code using the Ja.NET SE JDK, and incorporate other .NET-based class libraries. This will create a new version of the application which can be run on .NET. Using the Ja.NET SE-provided launcher, the new .NET version of the Java application runs on .NET and behaves as it did on the Java RI, yet also provides new functionality derived from incorporating the new .NET class libraries.

…”

Interesting…

Tuesday, September 09, 2008

Drooling for a free/OSS rules engine for .Net? The DROOLS.NET Primer

CodeProject - Getting Started with Drools.NET

“This Article discusses using the Drools.NET project in a Visual Studio 2008 Forms application. It goes through the steps to use the project files, as well as a brief discussion of the Drools Rule Syntax.

Background

There are lots of articles on the web explaining why applications should have the business logic separated from the application logic. During my time with Blaze Software, Neuron Data, and Inference Corporation, I must have given that presentation a thousand times. I am not going to go into all of that here.

Instead, I will attempt to show what can be done with a Business Rules System -- even if you don’t have the six figure budgets necessary to implement a solution using one of the commercial Rules Management systems, (such as Fair Isaac’s Blaze Advisor or Ilog’s JRules -- or whatever it will be called now they have been bought by IBM.)

JBOSS Rules and DROOLS.NET

An open source alternative to the commercial business rules engines is DROOLS -- re-branded now as JBOSS rules. It has recently given its internal algorithm a speed boost, and it has announced that it will support the legacy syntax used by Inference’s ART, and NASA’s CLIPS project. (as well as several other rules syntaxes.) Honestly, I was never overly fond of the ART syntax – which was too LISP-like for my tastes. However, there is no arguing that it was a very successful language, and there are a lot of examples and applications still available today for it. The main thing is that with DROOLS, you have several syntaxes to choose from, which is always a good thing.

This article is my somewhat expanded example which describes how rules are used in DROOLS.NET, and gives some explanation on how a rules system is implemented. It is not meant to be an in-depth tutorial, it is simply a starting point that I hope is useful.

I have the full application as part of the article so you can download and follow along – that way you don’t end up with typos like the unfortunate Drools.Net developer who did the online docs ;-) I should note that I am using the commercial version of Visual Studio 2008. I have not tested this in the free version, nor in 2005 – and, though I would expect it to run there, YMMV.

…”

There’s something about rules engines that attract me… Yeah, I know, I know, I need a life… Still I dig the dream of having my source and rules separate, with the rules being human readable, easily formatted and written by domain experts (i.e. let the business write the business rules… imagine that!  ;)

 

Related Past Post XRef:
Java Implementation for Mono/.Net
"Converting PDF to Text in C#" with PDFBox/IVKM.Net