Question

Salut tout le monde partout dans le monde,

Historique

Je suis étudiant en dernière année de sciences informatiques. J'ai proposé mon projet final Double module qui est un analyseur Plagiat, en utilisant Java et MySQL.

L'analyseur Plagiat sera:

  1. Analyser tous les paragraphes du document téléchargé. Analyser le pourcentage de chaque paragraphe copié à partir de quel site Web.
  2. Sélectionnez seulement les mots copiés exactement de quel site dans chaque paragraphe.

Mon objectif principal est de développer quelque chose comme Turnitin, amélioré si possible.

J'ai moins de 6 mois pour développer le programme. Je scope ce qui suit:

  1. Web Mise en œuvre du Crawler. Probablement UTILISERA API Lucene ou de développer mon propre Crawler (ce qui est le mieux en termes de développement de temps et aussi la facilité d'utilisation?).
  2. et indexation Hashage. Pour améliorer la recherche et l'analyse.

Questions

Voici mes questions:

  1. MySQL peut stocker que beaucoup d'informations?
  2. Ai-je manqué des sujets importants?
  3. Quelles sont vos opinions sur ce projet?
  4. Toutes les suggestions ou techniques pour effectuer l'analyse de similarité?
  5. Est-ce qu'un paragraphe soit haché, ainsi que des mots?

Merci d'avance pour toute aide et des conseils. ^^

Était-ce utile?

La solution

Avez-vous envisagé un autre projet qui n'est pas vouée à l'échec à cause du manque de ressources disponibles pour vous?

Si vous voulez vraiment aller le « Hé, nous allons explorer le web entier! » route, vous allez avoir besoin de sortir des choses comme HBase et Hadoop et beaucoup de machines. MySQL sera très insuffisant. Turnitin affirme avoir rampé et indexé 12 milliards de pages. l'index de Google est plus comme [expurgée]. MySQL, ou pour cette matière, les SGBDR, ne peut pas évoluer à ce niveau.

La seule façon réaliste que vous allez pouvoir retirer ceci est que si vous faites quelque chose et étonnamment intelligent comprendre comment construire des requêtes à Google qui révèleront le plagiat de documents qui sont déjà présents dans l'index de Google. Je vous recommande d'utiliser une file d'attente de messages et accéder à l'API de recherche de manière synchrone. La file d'attente de messages vous permettra également de manette des gaz vos requêtes vers le bas à un taux raisonnable. Évitez les mots d'arrêt, mais vous cherchez toujours des correspondances presque exactes, si les requêtes doivent être comme: "* quick brown fox jumped over * lazy dog" Ne vous embêtez pas en cours d'exécution des requêtes qui finissent comme: "* * went * * *" Et ne pas tenir compte des résultats qui reviennent avec 94.000.000 visites. Elles ne seront pas plagiat, ils seront citations célèbres ou des questions trop générales. Vous êtes à la recherche soit de moins de 10 coups ou quelques milliers de coups qui ont tous une correspondance exacte sur votre phrase originale ou une mesure semblable. Et même alors, cela devrait juste être une heuristique - ne pas signaler un document à moins qu'il ya beaucoup de drapeaux rouges. A l'inverse, si tout revient comme zéro coups sûrs, qu'ils sont d'une originalité rare. recherche du livre a besoin généralement des requêtes plus précises. Des choses suspectes devrait assez déclencher des requêtes HTTP pour les pages originales et les décisions finales devraient toujours être de la compétence d'un être humain. Si un document cite ses sources, ce n'est pas le plagiat, et vous aurez envie de détecter. Les faux positifs sont inévitables, et sera probablement commune, sinon constante.

Sachez que les TOS interdisent le stockage permanent d'une partie de l'index Google.

Peu importe, vous avez choisi de faire quelque chose très difficile, peu importe la façon dont vous construisez, et probablement très cher et prend du temps à moins que vous impliquez Google.

Autres conseils

1) Faites votre propre crawler web? semble que vous pouvez facilement utiliser tout votre temps disponible juste pour cette tâche. Essayez d'utiliser une solution standard pour que:. Ce n'est pas le cœur de votre programme

Vous aurez toujours la possibilité de faire votre propre ou d'essayer un autre après (si vous avez le temps à gauche!). Votre programme devrait fonctionner uniquement sur les fichiers locaux afin de ne pas être lié à un robot spécifique / API.

Peut-être vous aurez même d'utiliser différents robots d'exploration pour différents sites

2) paragraphes entiers Hachage est possible. Vous pouvez simplement une chaîne de hachage. Mais bien sûr, cela signifie que vous ne pouvez vérifier entiers paragrpahs exactement copiés. Peut-être que les peines seraient une meilleure unité à tester. Vous devriez probablement « normaliser » (Tranform) les phrases / paragrpahs avant hachant pour trier les différences mineures comme majuscules / minuscules.

3) MySQL peut stocker beaucoup de données.

Le conseil habituel est: coller à la norme SQL. Si vous découvrez que vous avez des données trop que vous aurez toujours la possibilité d'utiliser une autre implémentation SQL.

Mais bien sûr, si vous avez trop de données, commencez par chercher des moyens de réduire ou au moins de réduire ce qui est en mySQL. par exemple, vous pouvez stocker dans MySQL, mais hash pages originales (le cas échéant) dans des fichiers simples.

Code en ligne est généralement distribué sous licence OpenSource. Et la plupart de code est juste tutoriels. Selon votre logique, la copie rien de tout site Web est le plagiat. Ce qui signifie que vous ne pouvez pas accepter et utiliser une réponse que vous obtenez ici. Si vous voulez vraiment terminer votre projet, il suffit d'écrire un système qui compare le code des élèves de la même classe et des classes précédentes. Il est beaucoup plus efficace. Un exemple d'un tel système est MOSS (il y a aussi un article parlant de la façon dont cela fonctionne ). Cette chose est vraiment efficace sans robots d'exploration Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top