2012-07-13 1 views
0

J'ai besoin d'aide avec une forme de programme de classification de phrases.Programme de classification de phrases Java simple

Un programme qui lit un fichier et vérifie chaque phrase du fichier pour localiser les 'mots-clés'. Les mots-clés sont dans un autre fichier avec des mots écrits dedans. S'il trouve un mot-clé, il écrit cette phrase dans un autre fichier.

Jusqu'à présent, je suis cool avec la lecture du fichier d'entrée et le fractionnement en phrases et l'écriture du fichier de sortie

Pouvez-vous s'il vous plaît donner une certaine direction avec la façon dont le programme va lire chaque phrase dans le premier fichier et comparer il contre les mots dans le deuxième fichier et si elle trouve un mot-clé dans la phrase écrire dans un troisième fichier?

Merci beaucoup!

+0

Charger tous les mots dans un 'HashSet'; diviser l'entrée par des mots; utiliser 'set.contains (word)' –

+1

Une approche regexp ne serait-elle pas plus appropriée? – MadProgrammer

+1

@ user992484 Qu'est-ce qu'une "approche regexp"? –

Répondre

0

Vous pouvez utiliser Scanner pour lire le fichier et extraire directement des mots.

Vous pouvez charger tous les mots clés pour comparer dans un TreeSet, alors si vous écrivez trouvé aux FileWriter

0

Mots-clés sont un ensemble, je présume. Vous devez y accéder rapidement, utilisez donc HashSet. Si vos mots clés ne correspondent qu'à des contreparties exactes de votre phrase, divisez votre phrase par n'importe quel espace (\\s+ regex) et essayez de faire correspondre chaque mot d'une phrase avec les éléments des mots-clés.

Vous pouvez créer un grap de dépendance de cette façon, vous pouvez donc avoir un HashMap où les mots-clés sont des clés, et les valeurs sont des ensembles de phrases faisant référence à ce mot-clé.

En fin de compte, vous pourriez vous retrouver avec quelque chose comme ceci:

[Keyword="StackOverflow"] 
    [Values= 
     "I like posting on StackOverflow.", 
     "StackOverflow is cool." 
    ] 
[Keyword="posting"] 
    [Values= 
     "I like posting on StackOverflow." 
    ] 
0

Je peux donner un Solution- basé sur PHP

  1. Parse la chaîne phrase.
  2. Utilisation fonction strtok(), et définir la ponctuation commun (»,"()/etc) comme tokenizers/classificateurs. Forme

  3. un array/ensemble du dictionnaire de données contenant des mots prédéfinis.

  4. Utilisez la fonction preg_match(), pour une correspondance complète des mots, vous pourriez utiliser les structures spécifiées pour construire le tableau comme -> $ variable = array ("/ (\ bword1 \ b) /", "/ (\ bword2 \ b)/")

  5. À des fins de référence/spécifications des fonctions mentionnées ci-dessus, recherchez les documents php à - http://www.php.net/

J'espère que je pourrais vous aider.

Cheers.