jaraco / jaraco/inflect

Comparing words like "farm" and "farming"

Open
#130 1 comment 0 reactions 0 assignees View on GitHub
help wanted
Dominant language
Python
Stars
1.1k
Forks
127
PR merge metrics
No merged PRs in 30d

Description

Words like "farm" and "farming" don't appear to be considered similar in any way. Is there a way to properly check whether they match, or is that out of scope?

**Input:**

```
inflect_engine = inflect.engine()

print("compare:")
print("\tfarm vs farm: \t\t" + str(inflect_engine.compare('farm', 'farm')))
print("\tfarm vs farms: \t\t" + str(inflect_engine.compare('farm', 'farms')))
print("\tfarm vs farming: \t" + str(inflect_engine.compare('farm', 'farming')))
print("\tfarm vs farmming: \t" + str(inflect_engine.compare('farm', 'farmming')))
print("\tfarm vs farmer: \t" + str(inflect_engine.compare('farm', 'farmer')))
print("\tfarm vs farmmer: \t" + str(inflect_engine.compare('farm', 'farmmer')))
print("\tfarm vs farmed: \t" + str(inflect_engine.compare('farm', 'farmed')))
print("\tfarm vs farmmed: \t" + str(inflect_engine.compare('farm', 'farmmed')))

print("\ncompare_nouns:")
print("\tfarm vs farm: \t\t" + str(inflect_engine.compare_nouns('farm', 'farm')))
print("\tfarm vs farms: \t\t" + str(inflect_engine.compare_nouns('farm', 'farms')))
print("\tfarm vs farming: \t" + str(inflect_engine.compare_nouns('farm', 'farming')))
print("\tfarm vs farmming: \t" + str(inflect_engine.compare_nouns('farm', 'farmming')))
print("\tfarm vs farmer: \t" + str(inflect_engine.compare_nouns('farm', 'farmer')))
print("\tfarm vs farmmer: \t" + str(inflect_engine.compare_nouns('farm', 'farmmer')))
print("\tfarm vs farmed: \t" + str(inflect_engine.compare_nouns('farm', 'farmed')))
print("\tfarm vs farmmed: \t" + str(inflect_engine.compare_nouns('farm', 'farmmed')))

print("\ncompare_verbs:")
print("\tfarm vs farm: \t\t" + str(inflect_engine.compare_verbs('farm', 'farm')))
print("\tfarm vs farms: \t\t" + str(inflect_engine.compare_verbs('farm', 'farms')))
print("\tfarm vs farming: \t" + str(inflect_engine.compare_verbs('farm', 'farming')))
print("\tfarm vs farmming: \t" + str(inflect_engine.compare_verbs('farm', 'farmming')))
print("\tfarm vs farmer: \t" + str(inflect_engine.compare_verbs('farm', 'farmer')))
print("\tfarm vs farmmer: \t" + str(inflect_engine.compare_verbs('farm', 'farmmer')))
print("\tfarm vs farmed: \t" + str(inflect_engine.compare_verbs('farm', 'farmed')))
print("\tfarm vs farmmed: \t" + str(inflect_engine.compare_verbs('farm', 'farmmed')))

print("\ncompare_adjs:")
print("\tfarm vs farm: \t\t" + str(inflect_engine.compare_verbs('farm', 'farm')))
print("\tfarm vs farms: \t\t" + str(inflect_engine.compare_verbs('farm', 'farms')))
print("\tfarm vs farming: \t" + str(inflect_engine.compare_verbs('farm', 'farming')))
print("\tfarm vs farmming: \t" + str(inflect_engine.compare_verbs('farm', 'farmming')))
print("\tfarm vs farmer: \t" + str(inflect_engine.compare_verbs('farm', 'farmer')))
print("\tfarm vs farmmer: \t" + str(inflect_engine.compare_verbs('farm', 'farmmer')))
print("\tfarm vs farmed: \t" + str(inflect_engine.compare_verbs('farm', 'farmed')))
print("\tfarm vs farmmed: \t" + str(inflect_engine.compare_verbs('farm', 'farmmed')))
```

**Output:**

```
compare:
farm vs farm: eq
farm vs farms: s:p
farm vs farming: False
farm vs farmming: False
farm vs farmer: False
farm vs farmmer: False
farm vs farmed: False
farm vs farmmed: False

compare_nouns:
farm vs farm: eq
farm vs farms: s:p
farm vs farming: False
farm vs farmming: False
farm vs farmer: False
farm vs farmmer: False
farm vs farmed: False
farm vs farmmed: False

compare_verbs:
farm vs farm: eq
farm vs farms: p:s
farm vs farming: False
farm vs farmming: False
farm vs farmer: False
farm vs farmmer: False
farm vs farmed: False
farm vs farmmed: False

compare_adjs:
farm vs farm: eq
farm vs farms: p:s
farm vs farming: False
farm vs farmming: False
farm vs farmer: False
farm vs farmmer: False
farm vs farmed: False
farm vs farmmed: False
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the supplied Python example, then locate the implementations of compare, compare_nouns, compare_verbs, and compare_adjs. Clarify whether derivational relationships such as farm/farming are intended; done should be defined by agreed matching behavior and regression tests for the listed pairs.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.