সামগ্রী দ্বারা নকল পিডিএফ ফাইল সন্ধান করুন


9

কিছু জার্নাল প্রতিটি ডাউনলোডের জন্য আলাদা পিডিএফ উত্পন্ন করে। উদাহরণস্বরূপ এপিএস পিডিএফে সময় এবং আইপি ঠিকানা সঞ্চয় করে।

বা হাইপার লিঙ্কগুলির সাথে একটি কাগজের সংস্করণ এবং পাঠ্য রেফারেন্স সহ একটি রয়েছে।

লিনাক্স সিস্টেমে ওপেন সোর্স সফ্টওয়্যার ব্যবহার করে 90% সমান সামগ্রী সহ কাগজপত্রগুলির নকল ডাউনলোডগুলি কীভাবে পাওয়া সম্ভব?

আমি পিডিএফ ফাইলগুলির সাথে একটি অস্থায়ী ডিরেক্টরিতে প্লেইন টেক্সটে রূপান্তর করার কথা ভাবছিলাম pdf2txt। তারপরে আমি সমস্ত ফাইলের নাম ফিল্টার করতে পারলাম যা diff a bএক্স লাইনের চেয়ে বেশি ফলাফল করে। তবে এটি মোটেও মার্জিত নয় এবং স্ক্যান করা প্রকাশনাগুলির সাথে ব্যর্থ হবে। জার্নালগুলি প্রায়শই পুরানো প্রকাশনার জন্য ওসিআর পাঠ্য সরবরাহ করে না।

আমি compareইমেজম্যাগিক স্যুটেও চেষ্টা করেছি , কিন্তু আমি এই সরঞ্জামটির সাহায্যে মাল্টিপেজ পিডিএফ ফাইলগুলি পরিচালনা করতে পারি না।

diffpdf 2.1.1 দুটি ফাইলে জিইউআইতে ভাল কাজ করে, তবে অনেকগুলি ফাইলে কীভাবে এটি প্রয়োগ করতে হয় তা আমি বুঝতে পারি না এবং সাম্প্রতিক সংস্করণগুলি কোনও ওপেন সোর্স লাইসেন্সের অধীনে উপলব্ধ নেই।


1
যেহেতু উত্তরের মধ্যে খুব আলাদা পন্থা রয়েছে তাই আরও নির্দিষ্ট করে প্রশ্নটি পরিষ্কার করা ভাল। আপনি এখন অন্যদের মধ্যে বৈজ্ঞানিক কাগজপত্র সহ বিভিন্ন পিডিএফ ফাইলগুলির তুলনা করার একটি শক্তিশালী উপায় খুঁজছেন বা আপনি জার্নাল নিবন্ধগুলির সাথে তুলনা করার জন্য একটি কার্যকর, মার্জিত সমাধানের সন্ধান করছেন, যেখানে কেবল শিরোনাম বা ডিওআই মিলছে কিনা তা পুরোপুরি যথেষ্ট কিনা তা যাচাই করছেন।
inVader

আমি অনুরূপ সমাধানের সন্ধান করছি - এখন আমি এমডি 5 ব্যবহার করছি যা প্রতিটি ডাউনলোড পিডিএফ সময় এবং আইপি রেকর্ড করার সময় সমস্যাযুক্ত। আমি পৃষ্ঠাগুলির মধ্য দিয়ে লুপ করার জন্য একটি মোড়ক স্ক্রিপ্ট সহ চিত্রম্যাগিকের সাথে একটি সলিউশন নিয়ে কাজ করছি (এবং সম্ভবত প্রথম পৃষ্ঠাটি জার্নালের দ্বারা শিরোনাম যুক্ত হওয়ার ক্ষেত্রে এড়িয়ে যাওয়ার চেষ্টা করুন)। আমি অত্যন্ত আত্মবিশ্বাসী যে এটিই সম্ভবত সবচেয়ে শক্তিশালী সমাধান । আপনি জানেন যে এটি খুব ভালভাবে কাজ করবে কারণ দৃষ্টিভঙ্গি দুটি দস্তাবেজের তুলনা করার সময় কোনও ব্যক্তি একই পদ্ধতি ব্যবহার করে। দস্তাবেজটি যেভাবে উত্পন্ন হয় কেবল এটির দৃশ্যমান উপস্থিতিতেও এটি সম্পূর্ণ স্বাধীন।
orion

আমি আরও বলব যে কোনও একক পৃষ্ঠার তুলনা করা যথেষ্টই যথেষ্ট - এক পৃষ্ঠার সমান হলে দু'টি নথিই আলাদা unlikely স্বরলিপিটি blah.pdf[1]নথি থেকে একটি পছন্দসই পৃষ্ঠা কল করবে will
orion

আপনার যদি সত্যিই পিডিএফগুলির তুলনা করতে হয় যেখানে এক বা উভয় স্ক্যানের উপর ভিত্তি করে আমার ধারণা আপনি ওসিআর ব্যবহার এড়াতে পারবেন না। এখানে প্রস্তাবিত অনেকগুলি পন্থা তাই সমস্যাটি সত্যিই সমাধান করে না।
গোগৌড

উত্তর:


4

যেহেতু বিভিন্ন প্রকাশকরা পিডিএফগুলিকে "চিহ্নিত" করার বিভিন্ন পদ্ধতি ব্যবহার করে তা আপনাকে চিহ্নিত করে বিবেচনা না করে তুলনা করা নিশ্চিত করতে হবে।

আপনি যদি একই বার বার একই পিডিএফ ডাউনলোড করেন তবে এটি যেমন আইপি এবং / অথবা তারিখ-সময়-স্ট্যাম্পের সাথে চিহ্নিত হিসাবে আপনার পরামর্শ অনুসারে চিহ্নিত হয়ে থাকে তবে ইতিমধ্যে ডাউনলোড করা সমস্ত পিডিএফ এর সাথে একটি নতুন পিডিএফ তুলনা করার জন্য আপনার একটি দক্ষ পদ্ধতিও প্রয়োজন। আপনি একটি সময় গ্রহণকারী তুলনা ব্যবস্থাটি ব্যবহার করতে চান না যা প্রতিটি নতুন পিডিএফকে ইতিমধ্যে ডাউনলোড করা অনেক পিডিএফ এর সাথে তুলনা করে

আপনার যা দরকার তা হ'ল একটি ইউটিলিটি যা সম্ভাব্য প্রতিটি চিহ্নকে আলাদা করে ফেলে এবং বাকী ডেটার একটি হ্যাশ তৈরি করে। আপনাকে একটি হ্যাশ ফাইল ফাইলের মানচিত্র রাখতে হবে, যা একটি সরল ফাইলে থাকতে পারে এবং যদি কোনও গণনা করা হ্যাশ ফাইলটিতে ইতিমধ্যে থাকে তবে আপনার একটি সদৃশ রয়েছে (এবং এটি মুছুন বা যা প্রয়োজন প্রয়োজন করুন) এবং যদি এখনও হ্যাশটি না থাকে সেখানে, আপনি হ্যাশ এবং ফাইলের নাম যুক্ত করুন। ফাইলটি দেখতে এমন কিছু দেখাচ্ছে:

6fcb6969835d2db7742e81267437c432  /home/anthon/Downloads/explanation.pdf
fa24fed8ca824976673a51803934d6b9  /home/anthon/orders/your_order_20150320.pdf

মূল ফাইলটির তুলনায় এই ফাইলটি অযত্নে ছোট। আপনার যদি কয়েক মিলিয়ন পিডিএফ থাকে তবে আপনি এই ডেটাবেস কোনও ডেটাবেজে সংরক্ষণের বিষয়টি বিবেচনা করতে পারেন। দক্ষতার জন্য আপনি সেখানে ফাইলের আকার এবং পৃষ্ঠাগুলির সংখ্যা অন্তর্ভুক্ত করতে চাইতে পারেন pdfinfo | egrep -E '^Pages:' | grep -Eo '[0-9]*'


উপরের চিহ্নগুলি মুছে ফেলতে এবং হ্যাশ তৈরি করতে সমস্যাটিকে ধাক্কা দেয়। যদি আপনি জানেন যে হ্যাশ উত্পন্ন করার রুটিনটি (যেমন আপনি প্রোগ্রামগুলি ডাউনলোডগুলি করেন তবে) পিডিএফটি কোথা থেকে আসে তবে আপনি তার ভিত্তিতে হ্যাশ প্রজন্মকে সূক্ষ্ম-টিউন করতে পারেন। তবে তা ছাড়াও হ্যাশ উত্পাদনের বেশ কয়েকটি সম্ভাবনা রয়েছে:

  1. যদি শিরোনাম এবং লেখকের মেটাডেটা খালি না থাকে এবং "অ্যাক্রোব্যাট" বা "পিডিএফ" এর মতো অ-নির্দিষ্ট স্ট্রিং অন্তর্ভুক্ত না করে আপনি কেবল লেখক এবং শিরোনাম তথ্যের ভিত্তিতে হ্যাশ তৈরি করতে পারেন। pdfinfo -E file.pdf | grep -E '^(Author:)|(Title:) | md5sumহ্যাশ পেতে ব্যবহার করুন । আপনি হ্যাশ গণনা করার পাশাপাশি পৃষ্ঠাগুলির সংখ্যাও অন্তর্ভুক্ত করতে পারেন ( আউটপুটে ' Pages:' pdfinfo)।
  2. যদি পূর্ববর্তী নিয়মটি কাজ করে না এবং পিডিএফটিতে চিত্র রয়েছে, চিত্রগুলি বের করুন এবং সম্মিলিত চিত্রের ডেটাতে একটি হ্যাশ তৈরি করুন। চিত্রগুলি যদি "জো ব্যবহারকারীর কাছে লাইসেন্স দেওয়া" এর মতো পাদলেখ বা শিরোলেখগুলিতে লেখা থাকে তবে হ্যাশ গণনার আগে একটি X সংখ্যক রেখা উপরের বা নীচে গঠন করে। যদি সেই চিহ্নগুলি কিছু বড় চিঠিযুক্ত ধূসর ব্যাকগ্রাউন্ডের পাঠ্যে থাকে তবে এটি অবশ্যই কাজ করবে না, যদি না আপনি পিক্সেলগুলি পুরোপুরি কালো না করে ফিল্টার করেন না (তার জন্য আপনি ব্যবহার করতে পারেন imagemagick)। আপনি pdfimagesঅস্থায়ী ফাইলে চিত্রের তথ্যটি বের করতে ব্যবহার করতে পারেন ।
  3. পূর্ববর্তী নিয়মগুলি যদি কাজ না করে (কারণ কোনও চিত্র নেই) তবে আপনি pdftextপাঠ্যটি বের করতে, চিহ্নটি ফিল্টার করে (যদি আপনি কিছুটা ফিল্টার করে থাকেন তবে এটি কোনও সমস্যা নয়) এবং তারপরে হ্যাশ তৈরি করে যে।

পুরানো ফাইলের ফাইলের আকারটি হ্যাশের মাধ্যমে পাওয়া যায় এবং নতুন ফাইলের সাথে নির্দিষ্ট মার্জিনের মধ্যে রয়েছে কিনা তা আপনি তুলনা করতে পারবেন Additionally স্ট্রিংগুলিতে সংক্ষিপ্তসার এবং ইফারেন্সের (আইপি / তারিখ-সময়-স্ট্যাম্প) কেবলমাত্র এক শতাংশেরও কম পার্থক্য হতে পারে।

আপনি যদি হ্যাশ নির্ধারণের সময় প্রকাশক যে পদ্ধতিটি ব্যবহার করেন তা যদি আপনি জানেন তবে আপনি উপরের "ডান" পদ্ধতিটি সরাসরি প্রয়োগ করতে পারেন, তবে তা ছাড়া আপনি মেটাডেটা পরীক্ষা করতে পারেন এবং কিছু তাত্পর্য প্রয়োগ করতে পারেন বা কোনও ফাইলের চিত্রের সংখ্যা নির্ধারণ করতে পারেন এবং পৃষ্ঠাগুলির সংখ্যার সাথে এটি তুলনা করুন (যদি তারা কাছাকাছি থাকে তবে আপনার সম্ভবত স্ক্যানের সমন্বিত একটি নথি রয়েছে)। pdftextস্ক্যান করা চিত্র পিডিএফগুলিতে একটি স্বীকৃত আউটপুটও রয়েছে।


থেকে কাজ করার ভিত্তি হিসাবে আমি পাইথন প্যাকেজ তৈরি করেছি যা বিটবাকেটে রয়েছে এবং / অথবা পাইপিআই ব্যবহার করে ইনস্টল করা যেতে পারে pip install ruamel.pdfdouble। এটি আপনাকে pdfdblকমান্ডটি সরবরাহ করে যা মেটাডেটা, উত্তোলিত চিত্র বা পাঠ্যের উপরে উপরে বর্ণিত স্ক্যানিংটি করে। এটি চিহ্নিতকরণগুলির (এখনও) কোনও ফিল্টারিং করে না , তবে রিডমে এটি যুক্ত করার জন্য কোন (দুটি) পদ্ধতির উন্নতি করতে হবে তা বর্ণনা করে।

অন্তর্ভুক্ত রিডমি:

ruamel.pdfdouble

এই প্যাকেজটি pdfdblকমান্ড সরবরাহ করে :

pdfdbl scan dir1 dir2

এটি আর্গুমেন্ট হিসাবে সরবরাহিত ডিরেক্টরিগুলি নীচে চলে যাবে এবং পিডিএফ পাওয়া ফাইলগুলির জন্য, (ক্রম অনুযায়ী) একটি হ্যাশ তৈরি করবে:

  • অনন্য হলে মেটাডেটা
  • চিত্র যদি ইমেজ সংখ্যা
  • পাঠ

এটি ধরে নিয়েছে যে পপ্প্লার-ইউপেজ প্যাকেজ থেকে পিডিফিনফো, পিডিফাইমেজ এবং পিডিফোটটেক্সট আভিএলযোগ্য।

একটি "ডাটাবেস" তৈরি করা হয় ~/.config/pdfdbl/pdf.lstযার বিপরীতে আরও স্ক্যানগুলি পরীক্ষা করা হয়।

চিহ্নগুলি সরানো হচ্ছে

ইন ruamel/pdfdouble/pdfdouble.pyসেখানে দুটি পদ্ধতি থেকে PDF- যে তাদের কম অনন্য করুন এবং বিভিন্ন হ্যাশ আছে কার্যত একই ফাইল করা মধ্যে চিহ্ন ফিল্টার করার জন্য উন্নত করা যেতে পারে।

পাঠ্যের জন্য পদ্ধতিটি PdfData.filter_for_markingযুক্তিযুক্ত স্ট্রিং থেকে মুছে ফেলা এবং চিহ্নগুলি প্রসারিত করতে হবে এবং ফলাফলটি ফিরে আসতে হবে।

স্ক্যান করা চিত্রগুলির জন্য পদ্ধতিটি PdfData.process_image_and_updateউন্নত করা দরকার, উদাহরণস্বরূপ চিত্রগুলির নীচে এবং শীর্ষে এক্স লাইনগুলি কেটে ফেলে এবং সমস্ত কালো পিক্সেলকে সাদা করে সেট করে কোনও ধূসর ব্যাকগ্রাউন্ডের পাঠ্য সরিয়ে দিয়ে। এই ফাংশনটি .update()ফিল্টারযুক্ত ডেটাতে পাসের পদ্ধতিটি ব্যবহার করে পাস করা হ্যাশ আপডেট করতে হবে ।

বিধিনিষেধ

বর্তমান "ডাটাবেস" নতুন লাইনে থাকা পাথগুলি পরিচালনা করতে পারে না

এই ইউটিলিটিটি বর্তমানে পাইথন ২.7।


আইপি কনফর্মিং স্ট্রিংপার্টগুলি পাইথনের reমডিউলটির সাথে প্রতিস্থাপন করা যেতে পারে :

import re
IPre = re.compile("(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}"
              "([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])")

x = IPre.sub(' ', 'abcd 132.234.0.2 ghi')
assert x == 'abcd   ghi'

অতীতে আমি অজগর প্যাকেজটি pdfrwমেটাডেটা আহরণের জন্যও ব্যবহার করেছি, তবে এটি এনক্রিপ্ট হওয়া পিডিএফ ফাইলগুলি হ্যান্ডেল করতে পারে না, যেখানে pdfinfoপারে।
অ্যান্থন

2

আমি দিতে চাই pdftotextআরেকটি সুযোগ, আপনার সংগ্রহে PDF গুলি যে আসলে টেক্সট আছে তাদের জন্য অন্তত আউটপুট প্রক্রিয়া হতে ভাল টুল ব্যবহার করে (অন্যথায় আপনি OCR করুন চালানোর জন্য প্রয়োজন চাই)।

আপনার (নোংরা) পাঠ্য আউটপুটটি তৈরি হয়ে গেলে, মিলগুলি নির্ধারণ করার জন্য ডিজাইন করা একটি প্রোগ্রামের মাধ্যমে এটি চালান (বরং diffলাইন-লাইন পার্থক্যের পরিবর্তে, যা পাগলের পক্ষে দ্রুত পথ হবে)।

পার্লের স্ট্রিংয়ের মতো কিছু বিবেচনা করুন: সাদৃশ্য বা সিম্যাশ প্রোগ্রাম (যা ডেবিয়ানে পাওয়া যায় তবে ফেডোরা / আরএইচইএল নয়)।


2

পিডিএফগুলিতে মেটাডেটা থাকে এবং আমি বিভিন্ন প্রকাশকের কাছ থেকে বেশ কয়েকটি পদার্থবিজ্ঞান সম্পর্কিত কাগজপত্র পরীক্ষা করে দেখেছি এবং সেগুলির কমপক্ষে "শিরোনাম" বৈশিষ্ট্য রয়েছে। কারও কারও কাছে শিরোনাম হ'ল প্রকাশনার আসল শিরোনাম, কারওর জন্য এটিতে ডিওআই বা অনুরূপ সনাক্তকারী রয়েছে। যাইহোক, আমি প্রতি পরীক্ষিত প্রতিটি কাগজে শিরোনাম রয়েছে এবং এটি সর্বদা প্রদত্ত প্রকাশনাটির জন্য কিছু অনন্য।

আপনি pdftkপিডিএফগুলির মেটাডেটা অ্যাক্সেস করতে এবং সেগুলির সাথে তুলনা করতে পারেন । আপনার উদ্দেশ্যে, এটি অবশ্যই পর্যাপ্ত পরিমাণে হওয়া উচিত এবং pdftotextপারফরম্যান্স যদি কোনও সমস্যা হয় তবে তার চেয়ে অনেক দ্রুত । যদি কোনও কাগজে সত্যিই শিরোনাম মেটাডেটা না থাকে তবে আপনি এখনও পিছিয়ে যেতে পারেন pdftotext

আরও প্রক্রিয়াজাতকরণের ব্যবহারের জন্য সমস্ত মেটাডেটা একটি পাঠ্যফাইলে (বা স্টডআউট) ডাম্প করা

pdftk <PDF> dump_data output <TEXTFILE>

অথবা আরও বিকল্পের জন্য ম্যানুয়ালটি দেখুন।

আপনি চেষ্টা করতে চান তাহলে করে ImageMagick এর compareএকটি সমস্যা কারণ কিন্তু একাধিক পৃষ্ঠায়, এছাড়াও আপনি ব্যবহার করতে পারে pdftk(যদিও, হয়তো শুধু তুলনা একটি একক একটাতেই চলবে) একক পৃষ্ঠাগুলি নিষ্কাশন এবং তাদের সব আলাদাভাবে তুলনা।

এখানে একটি কোড স্নিপেট যা diffমাল্টিপেজ পিডিএফগুলির জন্য একটি পছন্দসই পিডিএফ আউটপুট তৈরি করতে এই পদ্ধতির ব্যবহার করে : https://gist.github.com/mpg/3894692


1

আপনি কি পিডিএফ বিষয়বস্তুর তুলনায় সন্ধান করেছেন ? আছে কমাণ্ড লাইন অপশন সম্বন্ধে যা আপনি প্রক্রিয়া স্বয়ংক্রিয়রূপে যাক উচিত।

পার্থক্য লগটি তৈরি করার ক্ষেত্রে আপনি কিছু ধরণের যুক্তি চালাতে পারেন যা দেখতে দেখতে এটি কতটা মিল।

ব্যর্থ হয়ে আপনি পিডিএফটিকে সাময়িকভাবে একাধিক ফাইলে বিভক্ত করার চেষ্টা করতে পারেন এবং সেভাবে তাদের তুলনা করতে পারেন। যদিও আপনার এখনও সম্ভবত নকল রয়েছে। একটি পিডিএফটিতে কেবল একটি অতিরিক্ত ফাঁকা পৃষ্ঠা বা এমন কিছু কিছু থাকতে পারে যা পরবর্তী সমস্ত পৃষ্ঠাগুলিকে সম্পূর্ণ আলাদা বলে তুলনা করতে পারে।


এই বদ্ধ উত্স প্রোগ্রামটির দুটি ব্যয়বহুল সংস্করণ হতে পারে কাজটি করতে পারে। আমি একটি ওপেন সোর্স সমাধানটি পছন্দ করব, যদিও এটি নিখরচায় হওয়ার দরকার নেই।
জোনাস স্টেইন

1

আলোচনায় বিনীত অবদান অনুসরণ করে (আংশিক উত্তর):

পাঠ্যে রূপান্তরিত হওয়ার পরে আমি নিম্নলিখিত শব্দগুলি (শব্দ পার্থক্য ভিত্তিক) ফাইল স্মাইলারিটি গণনা করতে ব্যবহার করব:

wdiff -s -123 file1.txt file2.txt |    ## word difference statistics (1)
     grep -Po '(\d+)(?=% common)' |    ## 
     awk '{a+=$1}END{print a/2}'       ## (2)

(1) এর মতো ফলাফল তৈরি করে

file1.txt: 36 words  33 92% common  3 8% deleted  0 0% changed
file2.txt: 35 words  33 94% common  2 6% inserted  0 0% changed

(2) = 93


1

আমি কোনো স্ক্রিপ্ট নির্যাস পাঠ্যে একটি পিডিএফ এ দেখায় এবং প্রথম চেষ্টা ব্যবহার আছে pdftotext, কিন্তু যদি এই ব্যর্থ (যেমন এটি একটি স্ক্যান করা দস্তাবেজের সঙ্গে হবে), এটি ব্যবহার করে Ghostscript একটি মোড় মাল্টি পৃষ্ঠা স্ক্যান করা পিডিএফ PNG ফাইল এবং তারপর একটি সিরিজ মধ্যে এই সিরিজটিকে একক পাঠ্য ফাইলে রূপান্তর করতে টেসারেক্ট ব্যবহার করে । স্ক্যানটি যদি পর্যাপ্ত মানের হয় তবে এটি বেশ ভাল কাজ করে। ফাইলগুলির মধ্যে পাঠ্যের তুলনা করে কোড যুক্ত করা সহজ হবে তবে আমার এই প্রয়োজনীয়তাটি নেই।

ঘোস্টস্ক্রিপ্ট এবং পরীক্ষামূলক উভয়ই মুক্ত উত্স এবং কমান্ড লাইন থেকে কাজ করে।


pdfimagesঘোস্টস্ক্রিপ্টের মাধ্যমে রেন্ডারিংয়ের সাথে আপনি যে গুণমানের অতিরিক্ত ক্ষতি পেতে পারেন তা ছাড়াই পপলার প্যাকেজটি ব্যবহার করে সরাসরি স্ক্যান করা চিত্রগুলি বের করতে পারেন (যা আপনি করতে চান কোনও ওসিআরকে নেতিবাচকভাবে প্রভাবিত করে)।
অ্যান্থন

@ অ্যান্টন এটি দেখানোর জন্য ধন্যবাদ, তবে অবশ্যই এখানে pdfimagesভূস্ট্রিপ্ট ( gs) হিসাবে একই কাজ করছে অর্থাত্ পিডিএফ থেকে জেপিজি / পিএনজি থেকে চিত্রগুলি বের করা। কেন এই চেয়ে ভাল gs?
গোগৌড 20'15

সমস্ত স্ক্যানের একই রেজোলিউশন না থাকলে গোস্টস্ক্রিপ্ট চিত্রগুলির পিক্সেলকে বিকৃত করে এমন রেন্ডারিং (যদি উদাহরণস্বরূপ হোয়াইটস্পেস এজগুলি বাদ দেওয়া হয়) এবং কেবল তখনই আপনি চিত্রগুলি ব্যবহার করেন ঠিক একই রেজোলিউশনে রেন্ডার করলে
অ্যান্থন

@ অ্যান্টন আকর্ষণীয়, আমি কিছুটা পরীক্ষা করেছি done ফলাফল খুব অনুরূপ কিন্তু মনে হচ্ছে যে gs/ tesseract(অন্তর্বর্তী বিন্যাস PNG) সামান্য চেয়ে ভাল কাজ করে pdfimages/ tesseract(PBM অন্তর্বর্তী ফরম্যাট)। pdfimagesযদিও দ্রুত।
গোগৌড

0

সমাধান হিসাবে আমি পার্ল অফার করব। এমন একটি মডিউল বলা হয়েছে CAM::PDFযা আপনাকে পিডিএফ বিষয়বস্তু উত্তোলনের অনুমতি দেয়।

এটি এইরকম কিছু কাজ করে:

#!/usr/bin/perl

use strict;
use warnings;

use CAM::PDF;

my $file = 'sample.pdf';

my $pdf = CAM::PDF->new($file);

my $word_count = 0;
for my $pagenum ( 1 .. $pdf->numPages ) {
    my $page_text = $pdf->getPageText($pagenum) );
    print $page_text; 
}

আপনি পাঠ্যটি নিষ্কাশন করতে পারেন এবং এটি তুলনা করতে পারেন।

স্ক্যান করা কেবলমাত্র নথিগুলির জন্য - এটি আরও শক্ত, তবে ধরে নেওয়া যে তারা একই বেসের চিত্রগুলি ব্যবহার করছে (উদাহরণস্বরূপ সেগুলি পৃথকভাবে স্ক্যান করেনি) তবে আপনি সম্ভবত ব্যবহার করতে পারেন:

#!/usr/bin/perl

use strict;
use warnings;

use CAM::PDF;
use CAM::PDF::Renderer::Images;
use Data::Dumper; 

my $file = 'sample.pdf';

my $pdf = CAM::PDF->new($file);

my $word_count = 0;
for my $pagenum ( 1 .. $pdf->numPages ) {
    my $content =  $pdf->getPageText($pagenum);
    my $page = $pdf->getPageContentTree($pagenum);
    my $gs = $page->findImages();
    my @imageNodes = @{$gs->{images}};
    print Dumper \@imageNodes;

    print Dumper \$gs;
}

আমি এটি বিশেষভাবে ভালভাবে পরীক্ষা করে দেখিনি, কারণ আমার কাছে আপনার উত্স নথি নেই। আমি মনে করি যদিও এই পদ্ধতির কৌশলটি করা উচিত - আপনি প্রকৃত চিত্রের সামগ্রীর তুলনা করছেন না, কারণ .... ভাল, এটি সত্যিই কঠিন। তবে আপনার মেটাডেটা থেকে অনুরূপ চিত্রগুলি সনাক্ত করতে সক্ষম হওয়া উচিত।

বিভিন্ন মেটাডেটা সহ অভিন্ন পিডিএফগুলির জন্য , তারপরে পাঠ্য সামগ্রী এবং ইমেজ মেটাডেটা হ্যাশ করার মতো কিছু সাধারণ কৌশলটি করা উচিত।


-1

একটি লিনাক্স অ্যাপ্লিকেশন রয়েছে, যার নাম রিকোল । এটি টাস্কটি সম্পাদন করতে পারে তবে কেবল পাঠ্য স্তর সহ পিডিএফ-এর জন্য।


2
আমার কাছে recollমনে হয় এটি একটি ডেস্কটপ অনুসন্ধান ইঞ্জিন। আমি দেখতে পেলাম না, এটি সদৃশগুলি খুঁজতে কীভাবে ব্যবহার করব।
জোনাস স্টেইন

1
recollpdftotextপিডিএফ হ্যান্ডেল করতে ব্যবহার করে, যা ওপি এখানে এড়াতে চাইছে।
জন ডব্লিউ এইচ স্মিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.