Program för att söka större text massor?

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1

Jag undrar om någon vet om det finns något program för mac som kan söka större textmassor - antingen på själva datorn eller mot internet.

Som exempel: jag har en text på cirka 20 sidor och vill kunna scanna texten för att se om något i detta dokument är kopierat från andra texter både från dator som från internet.

Ett exempel på sådan användning vore väl tex att kunna söka i elevers uppsatser för att se om dessa är kopierade från tex internet?

Har experimenterat lite med Applescript nu och det finns ett roligt kommando i Applescript som sammanfattar textstycken (det heter summarize) till en eller flera meningar. Med nedanstående script kan du antingen kopiera en text från någonstans (tex ditt mailprogram) eller markera den i Word och sedan köra scriptet som gör dessa saker:

* Hämtar texten (du får redigera i manuset varifrån du vill hämta texten, urklipp eller Word
* Sammanfattar den i en mening
* Söker efter den med google (sökningen öppnas i Safari om den är inställd som din default webbläsare).

Citat:

(*
----------------------------------------------------------------
SAMMANFATTA OCH SÖKA EFTER TEXT
Av: Ola @ intelligentmammals.se, 2007-01-14
http://www.intelligentmammals.se/
----------------------------------------------------------------
*)
-- Kommandot summarize finns i Standard Additions.

-- Parametrarna är summarize [texten] in [antal meningar i resultatet, heltal]

-- Detta manus låter en ta den markerade texten i tex Script Editor, sammanfatta den och söka efter den med Google.

(*
HÄMTA DEN MARKERADE TEXTEN I WORD FRÅN FRÄMSTA FÖNSTRET
*)
tell application "Microsoft Word"
set theText to content of selection of window 1
end tell

(*
ALTERANTIV - HÄMTA TEXTEN FRÅN URKLIPP
Vill du hellre använda urklipp? I så fall, editera manuset så att * ) som avslutar denna kommentar inte innesluter kommandona som använder urklipp istället, och flytta även * ) så att kommandona som använder sig av Microsoft word hamnar innanför en kommentar.

set theText to the clipboard as text

*)

(*
SUMMERA DEN
*)
set theSummary to summarize theText in 1

(*
SÖK PÅ GOOGLE
*)
tell application "URL Access Scripting"
open location "http://www.google.com/search?client=safari&rl..." & theSummary & "&ie=UTF-8&oe=UTF-8"

end tell

Vill du ha detta manus i din scriptmeny - så läs detta inlägg där jag beskriver hur man gör detta.

Det är från 2003 - så det kan vara inaktuellt:
Hur du öppnar forum på 99Mac med scriptmenyn
http://www.99.se/applescript/26985-scriptmeny-hur-oeppnar-forum-pa-99mac-com.html

Detta är från i år, men anger hur man får scriptet att synas i Mails scriptmeny:
Applescript för att radera vissa ord ur ärenderaden i Mail tex ordet spam
http://www.99.se/applescript/100652-applescript-foer-att-radera-vissa-ord-ur-aerenderaden-i-mail-tex-ordet-spam.html

Ok, summarize fungerar inte riktigt så bra som jag hade hoppats nu när jag testat med några fler textstycken.

Vill du skippa summeringen så ersätt denna rad...

set theSummary to summarize theText in 1

med

set theSummary to theText

Workaround - mer avancerat manus...
Jag kan tänka mig några andra varianter på detta script - det skulle tex kunna plocka några slumpmässiga ord och fraser om 3-10 ord och söka efter dem. Man bör dock ha en ordlista över ord med snömos så att man inte får med ord som är vanliga i svenskan så att man på så vis begränsar sökningen till viktiga och betydelsebärande ord.

Man kan också tänka sig att kanske plocka några fraser (inledningar på meningar) om tex fyra ord och söka efter dessa som en fras hos Google.

Det är också möljligt att skapa ett script som söker på kanske 10 grejer på en gång - i en uppsats på 20 sidor så kan man tänka sig att hitta fraser om 5 ord (inledningen på varje stycke) och söka efter dessa i varsitt Google-fönster. Lätt fixat.

Låter det intressant?

Ok, det här var ett intressant problem, kanske lite för intressant.

Nu har jag slipat på manuset så att det fungerar annorlunda:

* Nu delas texten in i stycken med hjälp av styckeindelningen

* Nu görs max fem Google-sökningar

* Varje styckes första fyra ord bildar en fras och den frasen eftersöks av Google.

Så här ser manuset ut nu:

Citat:

(*
----------------------------------------------------------------
SAMMANFATTA OCH SÖKA EFTER TEXT
Av: Ola @ intelligentmammals.se, 2007-01-14
http://www.intelligentmammals.se/
----------------------------------------------------------------
*)
-- Kommandot summarize finns i Standard Additions.

-- Parametrarna är summarize [texten] in [antal meningar i resultatet, heltal]

-- Detta manus låter en ta den markerade texten i tex Script Editor, sammanfatta den och söka efter den med Google.

-- Denna variant delar upp texten i stycken, tar fyra ord från varje stycke och söker på detta hos Google istället.

(*
HÄMTA DEN MARKERADE TEXTEN I WORD FRÅN FRÄMSTA FÖNSTRET
*)
tell application "Microsoft Word"
set theText to content of selection of window 1
end tell

(*
ALTERANTIV - HÄMTA TEXTEN FRÅN URKLIPP
Vill du hellre använda urklipp? I så fall, editera manuset så att * ) som avslutar denna kommentar inte innesluter kommandona som använder urklipp istället, och flytta även * ) så att kommandona som använder sig av Microsoft word hamnar innanför en kommentar.

set theText to the clipboard as text

*)

(*
PLOCKA UT EN LISTA PÅ FRASER
Vi delar texten i stycken, vi behöver referera till ASCII 13 (eller 10).
*)
set AppleScript's text item delimiters to (ASCII character 13) & (ASCII character 13)
set the itemlist to every text item of theText
set AppleScript's text item delimiters to ""

-- Bara sök om det är någon mening - om listan är tom så...
if length of itemlist > 0 then

(*
SÖK PÅ GOOGLE - I EN REPEAT
*)
-- Skapa räknare
set theCounter to 1

repeat with searchTerm in itemlist

-- Skippa till nästa om längden är 0
if number of words of searchTerm > 3 then


-- Hämta första fyra orden i varje stycke - gör det till sökterm
set AppleScript's text item delimiters to space
set searchTerm to words 1 through 4 of searchTerm
set searchTerm to searchTerm as string
set AppleScript's text item delimiters to ""

-- Sök hos Google - notera att sök-termen omges av ""
tell application "URL Access Scripting"
open location ("http://www.google.com/search?client=safari&rl..."" & searchTerm as text) & "\"&ie=UTF-8&oe=UTF-8"
end tell


-- Räkna upp
set theCounter to theCounter + 1

-- Vi öppnar inte mer än 5 fönster
if theCounter > 5 then
exit repeat
end if

-- Denna if avslutar "length of searchTerm > 0"
end if

end repeat

end if

Det verkar fungera: Jag googlade på uppsats och hittade denna uppsats om Argentina. Jag klickade på "Kommunikationer och utrikeshandel", kopierade sidan, startade Textredigeraren, klistrade in sidan, kopierade allt igen, startade Word, klistrade in, markerade allt. (Detta lägger in sidan i Word med radbrytningar som jag och scriptet vill ha dem).

Sedan körde jag manuset ovan och sökresultaten från Google visade att tex dessa två sidor har liknande fraser: Argentina (sök tex på "Kommunikationer och utrikeshandel" på den sidan så ser man att det är samma text. Man hittar även denna sida "Kommunikationer och utrikeshandel". Det intressanta med detta är förstås inte att samma text förekommer i just det här fallet, Marie som damen heter som verkar ha gjort alla dessa sidor fuskar förstås inte. Det intressanta är att jag med hjälp av scriptet och några manuella handgrepp (som också går att scripta), lyckades hitta två sidor på andra domäner med samma text. Så manuset fungerar tycker jag.

Senast redigerat 2007-01-14 19:26

Tack.

Ska snarast leka med detta.

1
Bevaka tråden