문자열을 비교하고 가장 일치하는 항목 할당안녕,
조금 도전적이다(어쩌면)
행 값을 일부 문자열 샘플 목록과 일치시키려고 하며 샘플 목록의 어떤 항목이 행 값과 가장 많이 일치하는지 알고 싶습니다.
여기 목록의 예가 있습니다
Sample_strings = { "Port3_Currents_587", "Port1_Volt_8_Off" , "PortC_Volt_12", "PortX_Curre_589_On", "Curren_Port_1280_On","Currents_5sd_On_Port1","Port_Currents_587_On" };
샘플 문자열과 가장 일치하는 문자가 있는 행을 찾고 목록에서 가장 일치하는 문자열을 두 번째 열에 할당하는 방법은 무엇입니까?
어떤 제안이 있으십니까?
내가 달성하고 싶은 최종 결과는 다음과 같습니다.

감사해요,
자동화 및 스크립팅Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.가장 일치하는 문자 또는 문자열로 가장 가까운 일치를 찾고 있는 질문 + 게시물에서 명확하지 않습니다(두 가지 다른 솔루션이 있는 두 가지 다른 것?
일치하는 문자열의 경우 다음 중 하나가 Shortest Edit Script 및 Choose Closest에 도움이 될 수 있습니다(스크립팅 인덱스는 이에 대한 도움말 페이지 링크를 얻을 수 없습니다).
편집하다:
JMP의 링크는 문자열, 선 또는 시퀀스 간의 차이점을 식별하는 데 도움이 됩니다(jmp.com)
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.@jthi 목록에서 문자열로 옷장 일치 항목을 찾고 있습니다. Shortest Edit 스크립트 인덱스를 알고 있지만 무작위로 정렬된 샘플 목록에서 가장 가까운 일치 문자열을 할당할 수 있는 방법을 찾으려고 노력 중입니다.
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.문자열 중에서 가장 일치하는 항목을 결정하기 위해 어떤 기준을 사용할 수 있습니까? SES의 "공통"? 예시를 공유해 주실 수 있나요?
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.나는 이것이 "가장 일치"한다고 생각하는 것에 달려 있다고 생각합니다. 몇 가지 예:
- PortX_Currents_5879_On 어느 것이 PortX_Curre_589_On 또는 Port_Currents_587_On 에 더 가깝습니까?
- Port3_Currents_5879_On 어느 것이 Port3_Currents_587 또는 Port_Currents_587_On 에 더 가깝습니까?
그리고 왜?
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.- PortX_Currents_5879_On 어느 것이 더 가까운가 PortX_Curre_589_On 또는 Port_Currents_587_On ?
- Port3_Currents_5879_On 어느 것이 더 가까운가 Port3_Currents_587 또는 Port_Currents_587_On ?
나는 그들이 매우 밀접하게 일치하기 때문에 각 문자열에 대해 두 가지 경우를 모두 고려한 다음 사용자가 어느 것을 선택할 것인지 결정할 것이라고 말하고 싶습니다.
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.아마도 귀하의 알고리즘은 그것들을 동일하다고 간주하지 않을 것입니다. 추측해야 한다면 편집이 덜 필요하기 때문에 꽤 많은 사람들이 두 번째 옵션을 더 가깝게 고려할 것입니다. 최단 편집 거리()를 사용하여 간단한 확인을 위해 삽입, 제거 및 편집된 문자 수를 확인할 수 있습니다. Closest()를 선택하면 9999개 편집 또는 이와 유사한 것을 사용하도록 허용할 수 있으므로 좀 더 무차별적인 방법이 될 수 있습니다.
내 상당히 빠른 솔루션은 귀하가 제공한 가장 많이 일치하는 문자열과 동의하지 않습니다(처음에 공통 시퀀스의 길이를 확인하고 싶을 뿐입니다).

편집 거리와 관련하여 읽을 수 있는 링크가 거의 없습니다.
JMP18이 있다면 문자열 거리 비교에 Python을 사용할 수도 있습니다(그러나 JMP의 방법이면 충분할 가능성이 높습니다). Python에서 비표준 라이브러리를 사용하도록 허용하면 더 많은 옵션을 얻을 수 있습니다.
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.나는 살펴볼 것이다. Jarmo님, 감사합니다.
위 코드 조각에서 ShorestEdit/ChooseClose 열을 수동으로 생성하셨나요? 그렇지 않다면 논리를 공유해 주시겠습니까?
감사해요,
Re: 문자열을 비교하고 가장 일치하는 항목을 할당합니다.가장 가까운 일치 항목을 수동으로 계산하는 데 너무 많은 작업이 필요하므로 앞서 언급한 기능을 사용했습니다.
편집을 허용하는 스크립팅 인덱스 예제를 확인하면 가장 가까운 선택을 구현하는 것이 매우 쉽습니다(첫 번째 인수는 테이블의 값이고 두 번째 인수는 샘플 목록이며 필요에 따라 최대 편집 횟수를 늘립니다).

Re: 문자열을 비교하고 가장 일치하는 문자열을 할당합니다.목록을 반복하고 각 값에 대해 가장 짧은 편집 스크립트를 사용하여 계산을 수행하거나(또는 직접 알고리즘을 작성) 가장 잘 일치하는 것을 선택하세요.