Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Lingua: Transform "wasn't" into "was not"

by toolic (Bishop)
on Apr 15, 2014 at 18:29 UTC ( #1082379=note: print w/replies, xml ) Need Help??

in reply to Lingua: Transform "wasn't" into "was not"

It looks like Lingua::EN::Contraction performs the inverse of the operation you want. I didn't see an "expand" version of this on CPAN. Check the source code to see if it might be feasible to modify for your purposes.
  • Comment on Re: Lingua: Transform "wasn't" into "was not"

Replies are listed 'Best First'.
Re^2: Lingua: Transform "wasn't" into "was not"
by Anonymous Monk on Apr 15, 2014 at 18:52 UTC

    Thank you. Lingua::EN::Contraction is good enough for for my purpose.
    (My work consists in comparing two English sentences and check if they are the same, but first I needed to normalize them, so this module does this, which is more than OK)

    Maybe the inverse ("what's" to "what is") is not possible because there are some words like person's which doesn't (always) mean person is.
    (I'm not a native English speaker, so I may be wrong about this)

      It's not just the confusability between "possessive 's vs. contracted 's", but also confusability between "'s contracted from is vs. 's contracted from has" -- for example:
      • John's father is old. (possessive)
      • John's old. (contracted from "John is")
      • John's been sick. (contracted from "John has")
      There's also some possible ambiguity with 'd, although this is relatively rare:
      • He'd never done that before. (contracted from "He had")
      • He'd never do that again. (contracted from "He would")

      Apart from those cases, every other English contraction has a distinct full form.

      If you're just trying to see whether two strings are identical except for contracted vs. uncontracted forms, it should work if you normalize both strings by applying contraction wherever possible, then seeing if they match.

      I suppose there's a way to do it by expanding the contractions instead, but that's a lot more complicated.

        Shouldn't most of these s contractions (except the possessive case) be restricted to spoken English?

        Cheers Rolf

        ( addicted to the Perl Programming Language)

      person's which doesn't (always) mean person is.
      You are correct. The following 2 sentences are equivalent:
      That person's code smells. The code of that person smells.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1082379]
[marto]: good morning all
[Corion]: Hi marto!
[Corion]: The fun show at $work continues, as The Big Project is now in its second week of frantic live-bugfixing and weekend releases where nobody knows what went live. Nothing has been tested anyway.
erix mutters cantankerously under his breath
Corion watches from the sidelines. Or rather, from behind, as my system only gets output from that process and my programs adhere strictly to the GIGO design principle.
[erix]: ah, that's nice to hear Corion :)
[Corion]: erix: Yeah, the sad thing is that all I can do is document things, so I can point fingers when the auditors come :-/
[Corion]: "I'm here to open tickets and point fingers. And I'm all out of tickets."
[erix]: didn't Sybase have pretty good auditing? :) (this is a vague memory)
[erix]: (culprits often are upstream of db of course)

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2017-03-28 08:57 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (328 votes). Check out past polls.